AVR单片机如何实现PLC程序中的上升沿触发功能
AVR单片机,输入设置有BCD开关,如何通过检测一位开关状态改变,使程序动作只执行一遍。例如PA0从0到1或从1到0改变时,使PD0输出置位程序只执行一次。因为程序其他位置还有PD0的状态操作,重复执行容易冲突。 可以用AVR的ICP功能,在中断处理上只改变状态量。主程序main里面用while()大循环,在while中加入if判断状态量,如果状态量改变就执行if,执行完后清空状态量,如果不改变就跳过。具体代码可以参考马潮老师的书中关于AVR单片机频率捕获那一章。 回复【1楼】ricefat-----------------------------------------------------------------------
不采用中断,怎么实现。 回复【2楼】powtran
回复【1楼】ricefat
-----------------------------------------------------------------------
不采用中断,怎么实现。
-----------------------------------------------------------------------
自己程序采样 请参考我编写的教程认真从基础开始学习。这个用状态机按键处理思想非常容易处理的。 谢谢马老师,我采用当前状态和前一周期的状态异或,如果为1就执行,已经解决了。
页:
[1]