[讨论] LPC1768定时器的定时精度

xiaoqiao2395   2014-6-30 20:49 楼主
不知道大家伙有没有碰到过类似情况,LPC1768的定时器定时精度在手册上并没有具体给出,但是附带例程上的程序初始化是这样的:
void timer0Init (void)
{
    T0TCR  = 0x02;
    T0IR   = 1;
    T0CTCR = 0;
    T0TC   = 0;
    T0PR   = 0;
    T0MR0  = FPCLK/2;                                                   /* 0.5S中断1次                  */
    T0MCR  = 0x03;                                                      /* 匹配后产生中断               */
   
    T0TCR  = 0x01;                                                      /* 启动定时器                   */
}
其中外设时钟频率FPCLK=24MHz,晶振是12MHz,PR=0,所以延时时间是1/FPCLK*(PR+1)*(MR0+1)约等于0.5S。
是不是意味着这个定时器的精度就是将PR和MR的值取最低为0,得到精度为1/24微秒呢?
我想用这个定时器实现定时然后中断在DA管脚输出一个模拟值,能够达到0.1微秒输出一个点是预期想要达到的效果,但是每次调整PR和MR值时最低差不多是0.5微秒就到极限了,并且输出的模拟值经DA转换后还存在波形重叠等现象,到底该如何解决这个问题呢?大神们有没有什么办法?谢谢了。


我用的C语言编程,KEIL开饭环境,自己想到的原因也就是程序进出中断函数也需要时间,可能是ns级别,所以导致输出波形重叠啥的,,,别的原因就想不出来了,,,,

回复评论 (3)

0.1us,那就是10MHz, 就算定时器能达到这个等级,DA能输出怎么快?
点赞  2014-6-30 21:24
引用: digitaltek 发表于 2014-6-30 21:24
0.1us,那就是10MHz, 就算定时器能达到这个等级,DA能输出怎么快?

DA最快只能达到0.4微秒,但是如果能延时0.4微秒中断输出一个数也可以啊,可是用0.4微秒设定中断输出一个数实验结果也会有波形重叠啥的现象,搞不懂为什么,设定延时为1.25微秒还是可以的,波形输出很正常,但是精度就太差了,我要输出的信号是类似正弦信号,周期是10微秒。
点赞  2014-7-1 19:51
这个芯片没用过,基本上查了一下资料,内部da只能做到1MHz的更新速率, 也就是最多1us一个数据. 你说的精度差应该要加滤波电路
点赞  2014-7-1 22:35
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复