欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機控制LED請問延時除了累減嵌套循環,還有什么好方法沒?
[打印本頁]
作者:
singrain
時間:
2019-8-11 20:23
標題:
單片機控制LED請問延時除了累減嵌套循環,還有什么好方法沒?
我想做個點亮led燈1秒,暗10秒,循環10次程序停止,網上找了一些程序拼湊而成,我是新手還沒入門呢,x的10次循環不知道怎么退出,延時循環一直用累減循環,會不會浪費cpu(mcu)資源、減少壽命,浪費電池電量。還有網上查的1s=1000000us,實測是255000us。
下面的程序,x的10次循環怎么退出啊,想運行10次就讓單片機休息,停止工作,怕一直工作下去累壞了,后面加了return 0程序出錯,while循環還不會寫。
#include<reg52.h>
sbit LED0=P1^0;
void Delay_1s();
void Delay_10s();
unsigned int i,j,k;
void delay_1s()
{
for(i=95;i>0;i--)
for(j=26;j>0;j--)
for(k=46;k>0;k--);
}
void delay_10s()
{
unsigned int i,j,k;
for(i=73;i>0;i--)
for(j=249;j>0;j--)
for(k=63;k>0;k--);
}
void main (void)
{
int x;
for (x=1; x<=10; x++)
{
LED0=0;
Delay_1s();
LED0=1;
Delay_10s();
}
}
作者:
51hei團團
時間:
2019-8-12 02:01
定時器有空閑的話可以用定時器 不過程序麻煩點
作者:
wulin
時間:
2019-8-12 05:56
想按精確時間循環10次程序停止需要使用定時器。
MCU是累不死的,讓MCU處于休眠狀態節約電池電量是可行的。
此類簡單程序在論壇很好找。
作者:
yzwzfyz
時間:
2019-8-12 12:04
你所能理解的方式都是最笨最糟糕的方法。
沙發、板櫈的說法是正解。
作者:
很多的小地方
時間:
2019-8-12 17:39
用定時器,比如一秒產生一次定時器中斷,在中斷中讓LED燈亮,再定義兩個全局變量,LED_cnt,count_cnt。LED_cnt是為了讓燈亮一秒暗10秒,cnt用來循環10次退出。
例子:
void TIM3_UPD_OVF_IRQHandler (void)//定時器3中斷服務函數
{
static LED_cnt = 0,count_cnt = 0;
if(!LED_cnt)
{
LED = 1;//亮燈
count_cnt ++;//計數一次
}
else LED = 0;//關燈
LED_cnt ++;
if(LED_cnt == 10) LED_cnt = 0;
if(0,count_cnt == 10) TIM3_SR1 = 0x00;//關定時器
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1