阿正的网易云音乐 - 创建于 2017

一个大学生的学习心得,与君共勉。

包装机的中断处理自动校准代码

本来我采用的是开机检测数据,但明显它是达不到我的要求的。我想要它在无论何时都能让用户进行校准数据,而且是自动校准。

想了很久,肯定要用到中断,但是很早以前我玩中断就玩不好,因为我触发一次中断,它总会紧接着一直触发,让我很头疼!所以查了很多资料,最终发现它是由于按键导致的,并不是软件代码的问题。

极客工坊链接地址

如图

在高电平初加电容大约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 }

效果很好,关于包装机称重模块的代码,暂且不备份和分享因为牵扯到工作室的小机密。

 

posted @ 2018-01-04 21:10  阿♛正  阅读(179)  评论(0编辑  收藏  举报