查看: 576|回复: 1

[未解决] 求助矩阵键盘中断

[复制链接]

该用户从未签到

发表于 2019-4-13 10:38 | 显示全部楼层 |阅读模式
#include <Keypad.h>
#include <Wire.h>
char a,b;
int flag=2;
int led=13;
int mykey[2];
int A,B,c=0,d,e,state=LOW;
const byte ROWS = 4; //four rows
const byte COLS = 3; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {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 setup(){
    Serial.begin(9600);
    pinMode(flag,INPUT);
attachInterrupt(0,blink,CHANGE);
digitalWrite(flag,state);
pinMode(led,OUTPUT);
}

  int array1()
  {


{ if(a==hexaKeys[0][0]){A=1;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[0][1]){A=2;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[0][2]){A=3;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[1][0]){A=4;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[1][1]){A=5;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[1][2]){A=6;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[2][0]){A=7;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[2][1]){A=8;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[2][2]){A=9;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[3][0]){A=10;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[3][1]){A=0;Serial.print("A=");Serial.println(A);}
      else if(a==hexaKeys[3][2]){A=11;Serial.print("A=");Serial.println(A);}

}

  }


     void blink()
{

  digitalWrite(led,state);
  array1();
  delay(1000);
  }
void loop(){
  a=customKeypad.getKey();
  if(a!=NO_KEY)
{ state=!state;
  digitalWrite(flag,state);

}

}

这样为啥实现不了中断,改了不知道多久了,实在不会了,谢谢各位大神帮忙

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

本版积分规则

热门推荐

[限时福利]5分钟带你快速了解新一代开发板:M5STACK
[限时福利]5分钟带你快速
一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
ESP32能烧录程序但是不能启动
ESP32能烧录程序但是不能
电路图3如下1,能烧录程序但是不能启动,3.3V供电正常
SpiderRobot 蜘蛛
SpiderRobot 蜘蛛
关于SpiderRobot 项目实行方案 之前有人推荐我做这个项目,于是乎就有了这个 h
点灯·blinker-app智动化设置不工作,还需设置那些?
点灯·blinker-app智动化
void loop() { Blinker.run(); // Blinker.delay(100); if (read_time ==
OLED 128*64自制可达10000000个选项的菜单(已更新)
OLED 128*64自制可达10000
OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表