zoukankan      html  css  js  c++  java
  • 包装机的中断处理自动校准代码

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

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

    极客工坊链接地址

    如图

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

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

    @青山不移,文笔不息。学习,坚持,梦想青春!
  • 相关阅读:
    3294 [SCOI2016]背单词
    P4551 最长异或路径
    BZOJ 4260: Codechef REBXOR
    P2322 [HNOI2006]最短母串问题
    P2444 [POI2000]病毒
    P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    BZOJ 3942: [Usaco2015 Feb]Censoring
    EZOJ #77
    EZOJ #73
    547D Mike and Fish
  • 原文地址:https://www.cnblogs.com/pengwenzheng/p/8196012.html
Copyright © 2011-2022 走看看