搜索

2000系列DSP器件通用定时器的计数模式有哪些?

发布网友 发布时间:2022-04-19 09:53

我来回答

2个回答

热心网友 时间:2023-08-06 10:42

我这以2812为例,说一下吧。

大前提:

各个模块的时钟要打开,有一次我就忘开全局时钟,结果查了半天错,郁闷死了。

各级中断保证打开(外设级,PIE级,cup级),这我也吃过亏。


首先要配置你要捕获的定时器值的值,如下:

//T4寄存器配置

EvbRegs.T4CON.bit.TENABLE=0;

EvbRegs.T4CON.bit.TMODE=2;//连续增计数模式

EvbRegs.T4CON.bit.TPS=5;//T4_CLOCK=HSPCLK/32=2.34375MHz

EvbRegs.T4CON.bit.TCLKS10=0;//选择内部时钟

注意几点:

要保证捕获周期时间要小于定时器记到最大值的时间,不然定时器跑一圈了,还没有捕获产生就产生溢出了。这里我要捕获市电的过零点,所以我定时器计一圈的时间大于20ms。

一般让定时器工作在连续增计数模式。

然后就是捕获单元的配置,如下:

//捕获单元配置

EvbRegs.CAPCONB.bit.CAPRES=0;

EvbRegs.CAPCONB.bit.CAPQEPN=0;//禁止捕获4和5

EvbRegs.CAPCONB.bit.CAP45TSEL=0;//选择T4定时器

EvbRegs.CAPCONB.bit.CAP4EDGE=1;//检测上升沿

主要就是上面四句话,先复位,然后为你的捕获单元选择定时器,选择要捕获的边沿。(这里我没有直接开启捕获,是因为还没到时候,具体什么时候开,主程序中有逻辑控制)

最后就是捕获中断函数了,这里就不将函数写出来了,根据自己的需求写就行。别忘了退出中断前要清楚中断标志位,以防重复进入中断。

热心网友 时间:2023-08-06 10:42

买本参考书看看
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top