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) 当初学AVR的时候就忘记了设置ICP引脚的上拉,结果怎么都没反应。睡了一觉第二天才弄好。
gcc 非常好,相信将来的MCU都会有GCC的编译器。
那些函数最好是先声明,不然会有警告。
没细看程序,测频一般都是上升沿触发,或者是按“定时间”计数,或者是等精度的:计数并在定时到的时候的下一个上升沿停止,获取时间和脉冲数量进行计算。既然用单片机做了,那还是等精度的好。 原理就是这个,我曾经用51外部中断做过, 感觉怎么和这个输入捕获一样了,只是这里的定时器值锁定起来比较快。
当时还开了定时器的中断,如果频率比较低,定时器溢出了就使用缓存扩展定时器的精度。
问:
输入捕获主要用在什么地方,是这样用吗? 在学习输入捕捉,正好看看,谢谢 万能的论坛什么都有啊.. 谢谢分享 正在用输入频率的!谢谢 下载了几个等精度频率测量的论文,供大家参考! 用模拟比较器作为输入捕获的输入触发源,谁做过 马克,谢谢分享。
页:
[1]