查看: 422|回复: 1

[未解决] 中断异常

[复制链接]

该用户从未签到

发表于 2019-4-13 20:45 | 显示全部楼层 |阅读模式
为啥我这个程序只能中断一次,下一次没反应了


#include <Keypad.h>
#include <Wire.h>
int mykey;
int key=2;
unsigned int data=0;
unsigned char frist_one;
unsigned char frist_two;

unsigned char shu_frist;
unsigned char shu_two;
unsigned char shu_three;
unsigned char shu_end;

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {10,9, 8, 7}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,5, 4, 3}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

    void blink()
       {
        digitalWrite(13,!digitalRead(13));
        skey();
        }
void setup(){
    Serial.begin(9600);
    pinMode(13,OUTPUT);
    attachInterrupt(0,blink,CHANGE);
}
void readKeyboard()
{
  bgn:
  char customKey = customKeypad.getKey();
  if (customKey!=NO_KEY){
switch(customKey)
{
case '1' : data=1;break;
case '2' : data=2;break;
case '3' : data=3;break;
case '4':data=4;break;
case '5':data=5;break;
case '6':data=6;break;
case '7':data=7;break;
case '8':data=8;break;
case '9':data=9;break;
case '0':data=10;break;
case '*':data=11;break;
case '#':data=12;break;
case 'A' : data=13;break;
case 'B' : data=14;break;
case 'C':data=15;break;
case 'D':data=16;break;
default:break;
}
}
else
goto bgn;
  }  


  void skey()
{
   readKeyboard();
    if(data==11)
    {
        shu_frist=1;
      }
      if(shu_frist==1)//绗竴浣�
      { bga:
        if((data==1)|| (data==2)||(data==3)||(data==4)|| (data==5)|| (data==6)|| (data==7)|| (data==8)|| (data==9)|| (data==10))
        {
             frist_one=data;
             Serial.print(frist_one);
             shu_frist=0;
             shu_two=1;
          }
       }
       if(shu_two==1)//绗﹀彿
      {
        if((data==13)|| (data==14)|| (data==15)|| (data==16))
        {

             shu_two=0;
             shu_three=1;
          }
       }

        if(shu_three==1)//绗笁浣�
      {
         if((data==1)||(data==2)||(data==3)||(data==4)||(data==5)||(data==6)||(data==7)||(data==8)||(data==9)||(data==10))
        {
             frist_two=data;
             Serial.print(frist_two);
             shu_three=0;
             shu_end=1;
          }
       }
        if(shu_end==1)//璁$畻
      {
         if(data==12)
        {     mykey=frist_one*10+frist_two;
              Serial.println(mykey);
             shu_end=0;
          }
       }
}   

void loop()
{

  }




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

[限时福利]5分钟带你快速了解新一代开发板:M5STACK
[限时福利]5分钟带你快速
一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
Arduino使用电阻分压测量电池电压问题
Arduino使用电阻分压测量
请教,下图中的连接有什么问题,如何调整? 让只有一块电池的条件下,解决测量电压不
上传一个蓝牙串口助手,安卓版的
上传一个蓝牙串口助手,安
/* 本软件为蓝牙串口通讯工具,可与蓝牙模块(如:HC-05)建立连接,进行串口通讯,可
蓝牙串口助手 1.3 beta 1测试版
蓝牙串口助手 1.3 beta 1
在之前版本的基础上增加了视觉相关功能: 颜色跟踪模式及人脸跟踪模式, 增加了发
萌新跪求arduinoUNO板对接无线模块(如何接和程序)
萌新跪求arduinoUNO板对接
哪位dalao能帮帮我啊???急!!! (提供有偿服务可加我QQ3285396460)
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表