单片机 > 单片机程序设计 > 详情

STM32定时器高效时间片学习

发布时间:2024-11-13 发布时间:
|

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

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时间变量也被置为故此时也执行一次。

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


关键字:STM32  定时器 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430低功耗模式-while循环失效