包装机的中断处理自动校准代码
本来我采用的是开机检测数据,但明显它是达不到我的要求的。我想要它在无论何时都能让用户进行校准数据,而且是自动校准。
想了很久,肯定要用到中断,但是很早以前我玩中断就玩不好,因为我触发一次中断,它总会紧接着一直触发,让我很头疼!所以查了很多资料,最终发现它是由于按键导致的,并不是软件代码的问题。
如图
在高电平初加电容大约0.1up(此处未加)
在低电平与io口之间加电阻月1K即可,暂且可以理解为起到消抖和缓冲作用。
另外就是终端中的延时程序,看到贴吧里的大神自己写了延时函数。避开了中断中不能使用delay()和for()循环的bug,也不能说是bug因为毕竟这是很复杂的东西,个人不敢分说。
代码简略如下:
1 for循环代码参照此贴。http://www.arduino.cn/thread-16784-1-1.html 嘿嘿这个社区似乎更火。 2 #define NOP do { __asm__ __volatile__ ("nop"); } while (0) 3 #define ulong unsigned long 4 void setup() 5 { 6 Serial.begin(9600); 7 } 8 void loop() 9 ulong a = millis(); 10 delay_(1000);//软件延时1000m 11 ulong b = millis(); 12 ulong c; 13 c=b-a 14 Serial.println(c); 15 } 16 void delay_(int ms)//自制软件延时 17 { 18 for(int i=0; i<ms; i++) 19 { 20 for(ulong j=0;j<1985;j++) NOP; 21 } 22 }
效果很好,关于包装机称重模块的代码,暂且不备份和分享因为牵扯到工作室的小机密。
@青山不移,文笔不息。学习,坚持,梦想青春!