假设函数IS_PIN_A_HIGH()和IS_PIN_B_HIGH()是读取A,B两个引脚的状态 假设有两个外中断INT0和INT1都已经配置为双边沿触发模式,则解码如下:
[color=rgb(51, 102, 153) !important]复制代码 读取全局变量s_wQDCounter的时候别忘记加入中断保护。如果要追求效率,可以将计数器类型修改为uint16_t。 -------------------------- 以上就是中断法,可以用引脚电平变化中断来做。上面的代码是4倍频。如果要2倍频,去掉任何一个中断处理程序即可。 如果要单倍频,选择任意一个外中断,并选择只对某个边沿触发即可。 多年测试,稳定可靠~ 记住一句口诀: 在任意边沿触发模式下,A和B进行电平比较: 对A触发的中断:同加异减 对B触发的中断:同减异加 反之亦然 总结到最后,就是 同加异减,同减异加 |
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |