yanxiao1227 发表于 2011-6-24 21:09:25

AVR学习(输入捕获作频率测量)

最近刚刚换了个闲职,没事正好学学AVR。因为么有板子,只好用软件仿真了,感觉protues还瞒好用的。

刚刚用定时器输入捕获做了个简单的频率测量。
http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_651942IU4VZP.JPG
(原文件名:频率测量.JPG)

程序很乱,就像我现在的心情一样。还因为跟SPI驱动SED1565屏放到一起, 太占地方,就不贴了。


原理:

测量过程就是在第一次输入捕获的时候把计数器清零,然后再第二次捕获的时候把捕获寄存器的值读出来,进行计算。
感觉这个过程跟使用(51)外部中断的原理完全一样,不知道大家使用输入捕获功能测量频率的时候是不是也是这样?


程序和仿真文件在这里,使用的是WINAVR编译,之前用瑞萨也是makefile(应该不是GCC,但差不多),现在感觉还挺习惯GCC了。
点击此处下载 ourdev_651955F1BLR4.rar(文件大小:88K) (原文件名:SPI_LCD.rar)

huayuliang 发表于 2011-6-24 21:59:47

当初学AVR的时候就忘记了设置ICP引脚的上拉,结果怎么都没反应。睡了一觉第二天才弄好。

gcc 非常好,相信将来的MCU都会有GCC的编译器。

那些函数最好是先声明,不然会有警告。

没细看程序,测频一般都是上升沿触发,或者是按“定时间”计数,或者是等精度的:计数并在定时到的时候的下一个上升沿停止,获取时间和脉冲数量进行计算。既然用单片机做了,那还是等精度的好。

yanxiao1227 发表于 2011-6-25 13:25:13

原理就是这个,我曾经用51外部中断做过, 感觉怎么和这个输入捕获一样了,只是这里的定时器值锁定起来比较快。

当时还开了定时器的中断,如果频率比较低,定时器溢出了就使用缓存扩展定时器的精度。


问:

输入捕获主要用在什么地方,是这样用吗?

hongkong 发表于 2013-7-25 11:09:26

在学习输入捕捉,正好看看,谢谢

Rainfieldwood 发表于 2013-8-10 14:25:33

万能的论坛什么都有啊..

lanzi3105 发表于 2013-11-3 23:05:08

谢谢分享                  

pangbin4 发表于 2013-11-4 23:36:43

正在用输入频率的!谢谢

luweixuan 发表于 2013-11-5 00:18:58

下载了几个等精度频率测量的论文,供大家参考!

zlw1987107 发表于 2013-11-10 20:46:49

用模拟比较器作为输入捕获的输入触发源,谁做过

Lauchael 发表于 2014-2-22 12:46:37

马克,谢谢分享。
页: [1]
查看完整版本: AVR学习(输入捕获作频率测量)