TI中文支持网
TI专业的中文技术问题搜集分享网站

Hercules的定时器问题,如何获得一个10mS间隔的计数器

设计中需要用一个计数器作为软件计时器的标准,要求每隔10mS计数器增加一次,提供给软件计时器做基准。 我看规格书文档号:spn517里12.2.1节关于RTI计数器的说明, 是不是可以这样: RTIUCx 赋一个合适的值,使经过10mS能够增加到这个值,从而RTIFRCx即为10mS的次数。 应用程序中即可使用RTIFRCx的值,作为计数器基准。 请大家帮忙看看,这样是否可行,或者有没有什么更好的方法实现此功能。

wei tang:

回复 Renton:

规格书spnu517中是这么写的

12.2.1 Counter OperationEach counter block consists of the following (see Figure 12-2):• One 32-bit prescale counter (RTIUC0 or RTIUC1)• One 32-bit free running counter (RTIFRC0 or RTIFRC1)The RTIUC0/1 is driven by the RTICLK and counts up until the compare value in the compare up counterregister (RTICPUC0 or RTICPUC1) is reached. When the compare matches, RTIFRC0/1 is incrementedand RTIUC0/1 is reset to 0. If RTIFRC0/1 overflows, an interrupt is generated to the vectored interruptmanager (VIM).

我的意思是,RTIUCPUC0设置一个比较的值,让RTIUC0从0增加,当增加到等于RTIUCPUC0设置的值时(根据RTI的时钟源,使RTIUC0从0增加到RTIUCPUC0的值时间为10mS),此时,RTIFRC0为10mS间隔的次数,RTIUC0又会复位到零,再计数。而RTIFRC0的值不就是10mS的间隔次数么?

Renton:

回复 wei tang:

Hi Wei,

    没错,您的理解是正确的。

    不过这么使用的时候需要注意的是,如果用户要预设RTIFRC0计数器的值,那么要先在RTIGCTRL寄存器中把整个计数模块停掉。

    The counter can be preset by writing (in privileged mode only) to this register. The counter    increments then from this written value upwards.    Note: If counters must be preset, they must be disabled in the RTIGCTRL register to    ensure consistency between RTIUC0 and RTIFRC0.

wei tang:

回复 Renton:

TI的IAR关于hercules关于rti的示例非常晦涩复杂,能帮忙在附件中提供需要的函数么?谢谢

user5820093:

菜鸟想问一下,主函数怎么调用

赞(0)
未经允许不得转载:TI中文支持网 » Hercules的定时器问题,如何获得一个10mS间隔的计数器
分享到: 更多 (0)