timer定时器中断

2021/5/4 18:56:13

本文主要是介绍timer定时器中断,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

注意:

①TCMPBn的值用于脉冲宽度调制(PWM)。 当递减计数器值与定时器控制逻辑中比较寄存器的值匹配时,定时器控制逻辑将更改输出电平。 因此,比较寄存器确定PWM输出的开启时间(或关闭时间)。此时不会产生定时器中断,只会使得输出电平发生反转。

②每个定时器都有自己的16位递减计数器,由定时器时钟驱动。 当递减计数器达到零时,将产生定时器中断请求,以通知CPU定时器操作已完成。当计时器计数器达到零时,相应的TCNTBn的值将自动加载到递减计数器中,以继续进行下一个操作。 但是,如果定时器停止运行(例如,通过在定时器运行模式期间将TCONn的定时器使能位清零),则不会将TCNTBn的值重新加载到计数器中。因此,此时当递减计数器减小到0时,可以产生定时器中断。

 

  1. 定时器具有TCNTBn,TCNTn,TCMPBn和TCMPn。
  2. 当定时器到0时,将TCNTBn和TCMPBn装入TCNTn和TCMPn。
  3. 当TCNTn到0时,中断 如果中断使能,将发生请求。

为了使如果再添加中断不再修改中断服务程序,可以采用函数指针的方式注册各个中断处理函数,其格式如下:

中断注册函数:

将需要注册的中断号、中断处理函数放入中断数组中,并使能相应位的中断位。当调用中断处理函数时,直接从函数数组中调用相应的函数。

 



这篇关于timer定时器中断的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程