当前位置:首页 > 单片机 > 单片机
[导读]常规单片机运行程序如下:while(1){.....}类似于一种顺序执行的方法,执行起来较为死板,一旦某一行发生错误的时候就会造成整个程序的跑飞,基于以上传统开发所有的缺点。可以设置相关的定时器,进行某种时间片的控

常规单片机运行程序如下:

while(1)

{

.....

}

类似于一种顺序执行的方法,执行起来较为死板,一旦某一行发生错误的时候就会造成整个程序的跑飞,基于以上传统开发所有的缺点。可以设置相关的定时器,进行某种时间片的控制。


首先设置定时器的中断,按照正常的配置相关的时间基点。

例如:将预装载寄存器存放20-1,将预分频寄存器装360-1,计数器没溢出一次形成的是0.5ms的时间,以此为时间基准,使能溢出中断。

之后可以在中断服务函数内设置相关的计数全局变量,每中断一次,对相对应的时间变量+1:

05ms++;

1ms++;

... ...

1000ms++;

在主函数之中根据相关的全局变量,可以每到达以此时间点变执行相关的时间

类似如下:

if(05ms=ON)

{

05ms=OFF;

... ...

}

else if(1ms=ON)

{

1ms=OFF

... ...

}

。。。

else if(1000ms=ON)

{

1000ms=OFF

... ...

}

注:... ...为添加的函数

分析:当设置0.5ms为时间基点的时候,第一次溢出的时候,执行一次里面的函数此时计时0.5ms,第二次溢出的时候此时按照顺序结构执行又一次执行05ms内的函数。此时1ms时间变量也被置为故此时也执行一次。

总结:可以设置合适的时间点,没过一个时间段,此函数执行一次。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭