|
|
|
 |
发表于:2008-9-4 14:18:00
|
 |
楼主
|
|
|
|
|
|
|
 |
级别:
|
|
积分:46分 |
|
注册:2008年07月21日
|
|
|
捕获测频率,并让LCD实时显示,大家有什么好的想法
|
|
|
|
|
|
|
|
 |
发表于:2008-9-9 10:08:00
|
 |
2 楼
|
|
|
|
|
|
|
 |
级别:
|
|
积分:37分 |
|
注册:2008年08月19日
|
|
|
先定义一个频率变量,设置成捕获模式,不管是上升沿捕获、还是下降沿捕获,在捕获中断里对频率变量加1,再用定时器每秒清0一次频率变量,清0之前的计数值即为频率值。
|
|
|
|
|
|
 |
发表于:2008-9-9 10:09:00
|
 |
3 楼
|
|
|
|
|
|
|
 |
级别:
|
|
积分:49分 |
|
注册:2008年08月20日
|
|
|
根据AVR的特点,两个中断同时发生时,是不会产生嵌套的,总是等第一个中断完成后再进入第二个中断。所以不用管,它会自动处理的。 再说:当频率没输进去时,由于定时器会定时(最好是每秒)清0频率变量,因此此时输出显示的频率数据是0,符合要求。
还有第二种方法:此法不用定时器,只需在每次捕获中断中读出ICR1的值,减去上一次捕获中断时读取的ICR1值,即可算出周期,再算出频率数值。不过这种方式的运算量较大,CPU会比较“累”。
|
|
|
|
|
|
 |
发表于:2008-9-24 15:32:00
|
 |
4 楼
|
|
|
|
|
|
|
|
|
|
|
|
 |
发表于:2008-9-25 15:25:00
|
 |
5 楼
|
|
|
|
|
|
|
 |
级别:
|
|
积分:40分 |
|
注册:2008年07月30日
|
|
|
了解
|
|
|