我们现在采用CC2640来做红外码的学习及发射,所以需要用到CC2640的定时器及外部中断来实现,外部脉冲中断产生是没问题,但是定时器要做到100us的定时计数是否可以实现?
Viki Shi:
试试Task_sleep( ((i) * 1000) / Clock_tickPeriod ) ,Clock_tickPeriod单位10us
shendy liu:
回复 Viki Shi:
怎么读取到计数器的定时个数呢?
shendy liu:
回复 shendy liu:
Task_sleep( ((i) * 1000) / Clock_tickPeriod )这个函数只是定时器定时时间到了事件就往下执行,但是我需要的是通过结合外部中断条件来读取定时器的计数个数的,假如定时基数时间是100us,读取到时10个值就是1000us的计算外部脉冲周期的,所以要使用到定时器里的计数
Viki Shi:
回复 shendy liu:
你可以用GPtimer实现100us的定时
GPTimerCC26XX_Value loadVal = freq.lo / 10000 – 1; //4799// generate 100us timer
shendy liu:
回复 shendy liu:
VIki ;
你们还有没有其它的办法?Task_sleep(10*1000/Clock_tickPeriod);这个只是等待设定的时间进行任务休眠,和我要用来测量外部中断的脉冲时间周期还是不一样的。
shendy liu:
回复 shendy liu:
我不需要定时中断的,你这个GPTimerCC26XX_Value loadVal = freq.lo / 10000 – 1; //4799 // generate 100us timer 设置是时间到了会产生一个中断回调,我是通过外部脉冲的边缘中断触发条件来读取定时器的个数,定时器根据设定计数不断计数,当外部中断来了就去读取计数值,是这样来实现的,
TI中文支持网


