BASIC4MCU | 질문게시판 | 레오나르도 인터럽트 핀 오류
페이지 정보
작성자 알라알 작성일2019-05-17 08:49 조회4,447회 댓글1건본문
안녕하세요
레오나르도에서 인터럽트 핀을 이용하여, 인터럽트 발생시, 디지털신호를 발생하는 환경을 구현하려고 합니다.
추가적인 제어를 위해, 16*2 LCD와 부저가 달려있는 상황입니다.
그런데, 인터럽트 핀만 꽂으면 보드에서 오류가 나는지, 부저와 LCD가 정상작동하지않고, 당연히 인터럽트 핀 제어도 되지 않습니다.
인터럽트 핀은 레오나르도 인터럽트 핀인 2번 핀을 사용하고 있고, 코드는 아래와 같습니다.
const int interruptPin = 2;//인터럽트핀
unsigned long timeVal = 0; //이전시간
unsigned long millisTime = 0; //현재시간
unsigned long countTime = 0; //카운트시작시간boolean state = false;//타이머 동작 제어
void setup()
{
Serial.begin(9600);
pinMode(interruptPin, INPUT_PULLUP);
pinMode(7, OUTPUT);
attachInterrupt(digitalPinToInterrupt(interruptPin), switchFn, CHANGE);
}void loop()
{
Door_SW();
}void Door_SW(){
if(state==true){ //카운트 시작
if(millis()-timeVal>=1000){ //1초단위로 출력
timeVal=millis();
millisTime = (millis()-countTime)/1000;
Serial.println(millisTime);
if(millisTime == 3){
digitalWrite(7, HIGH);
}
}
}
}void switchFn(){
state=!state;
countTime=millis();
timeVal=countTime;
digitalWrite(7, LOW);
}
댓글 1
조회수 4,447master님의 댓글
master 작성일LCD 코드가 없는데도 LCD가 정상동작 하나요?