질문게시판 > Atmaga128 인터럽트를 사용한 main문 재실행 질문입니다.

TODAY1,004 TOTAL2,267,825
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | Atmaga128 인터럽트를 사용한 main문 재실행 질문입니다.

페이지 정보

작성자 나욜렌 작성일2022-06-08 02:14 조회1,314회 댓글5건

본문

	

현재 프로젝트를 위해 코드를 제작중인데,

atmega128의 PE4핀 (INT4)에 택트 스위치를 연결하여 외부 인터럽트로 동작시키려고 합니다.

 

void Interrupt_init(void)

{

EIMSK = 0x10;

EICRA = 0x00;

EICRB = 0x02;

EIFR = 0xFF;

sei();

}

 

인터럽트 초기화 함수는 다음과 같이 작성하였습니다.

다만 문제는 인터럽트 시 코드를 어떻게 작성해야 할 지 모르겠네요.

버퍼를 두어서 인터럽트 발생 시 버퍼 데이터를 바꾸어 해보려고도 했으나 반복문을 이런식으로 탈출하기는 불가능했습니다.

exit(0); 를 사용을 해보았는데 이 경우에도 먹통이었고요...

 

리셋버튼은 이미 있기에 main문 만을 처음부터 다시 돌리도록 하고싶습니다만, 좋은 방법이 있을까요?

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 5

조회수 1,314

master님의 댓글

master 작성일

volatile char flag4=0; // 전역변수 추가, 코드비젼이라면 volatile 필요 없슴

ISR(INT4_vect){
  flag4=1; // flag4 set
}

int main(){
start:; // 어드레스 라벨
  while(
    if(flag4){ flag4=0; goto start; } // 인터럽트4가 발생했다면 start로 강제 점프
  }
}

goto는 같은 함수 내에서 사용하세요
다른 함수로 점프하면 안됩니다.

나욜렌님의 댓글

나욜렌 댓글의 댓글 작성일

감사합니다

나욜렌님의 댓글

나욜렌 댓글의 댓글 작성일

혹시 while문 내에서 다른 조건 발생 시 delay가 다수 포함되는 동작코드가 있다면 어떤식으로 적용을 해줘야할까요? 제가 이부분을 빼고 질문을 올려 이 방식으로는 사용이 불가능하네요 ㅠㅠ

master님의 댓글

master 작성일

_delay_ms(3000);
이렇게 무지막지한 딜레이가 있다면 딜레이를 쪼개야 합니다.
for(i=0;i<300;i++){ _delay_ms(10); if(flag4){ flag4=0; goto start; } }
10ms 마다 플래그를 체크 하도록 변경 했습니다.
딜레이나 루프가 여러개면 플래그 체크 문장을 여러개 모두 넣어야 합니다.

나욜렌님의 댓글

나욜렌 댓글의 댓글 작성일

감사합니다. 코드가 길어진다고해도 다른 방법이 없다면 이 방법으로 해야겠네요 ㅠㅠ

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 codevision atmega128 코딩 알려주세요 ㅠㅠ댓글[4] 이미지 goodjob 22-06-16 965
질문 앱인벤터 센서값 숫자 비교 관련입니다.댓글[2] 이미지첨부파일 도와주십 22-06-16 689
질문 이유를 모르겠습니다.댓글[7] 나난나 22-06-15 718
질문 아두이노 이용해서 호흡측정을 하고싶은데 혹시 알맞은 센서가 있을까요??댓글[1] intvert 22-06-15 596
질문 ATMEGA 코드에 오류가 있을까요? skanl 22-06-15 288
답변 답변글 답변 : ATMEGA 코드에 오류가 있을까요?댓글[1] master 22-06-15 367
질문 심박수 측정값 블루투스 전송 코드댓글[1] 이미지 카키 22-06-15 703
질문 LCD 2줄 출력 오류 데라라 22-06-15 858
답변 답변글 답변 : LCD 2줄 출력 오류댓글[2] master 22-06-15 662
질문 아두이노 질문있습니다. Alpaka 22-06-15 818
답변 답변글 답변 : 아두이노 질문있습니다.댓글[1] master 22-06-15 657
질문 센서 두 종류를 동시에 사용하는 코드를 만드려고 합니다댓글[1] intvert 22-06-14 933
질문 아래 질문에 연장해서 질문이 있습니다.댓글[1] 페이즐리 22-06-14 761
질문 아두이노 LCD와 7세그먼트 동시 사용댓글[4] 페이즐리 22-06-14 1392
질문 아두이노 코딩 질문입니다.댓글[4] NICE 22-06-14 1105
질문 댓글 : millis()? 질문드립니다.댓글[2] 첨부파일 브링미히어 22-06-14 1009
답변 답변글 답변 : 댓글 : millis()? 질문드립니다.댓글[1] master 22-06-14 660
질문 모션센서 민감도 조절..댓글[3] 이미지첨부파일 남산 22-06-14 977
질문 아두이노 코딩질문 Alpaka 22-06-14 1113
답변 답변글 답변 : 아두이노 코딩질문 master 22-06-14 1304
질문 심박수 측정값 오류 원인댓글[1] 이미지 카키 22-06-14 939
질문 도트 매트릭스를 통한 장애물 피하기 게임 질문댓글[3] 끼룩 22-06-14 993
질문 아두이노 센서3개와 모터제어 코딩 도와주세요!댓글[2] RLOP35 22-06-13 1099
질문 아두이노 도트 매트릭스 코딩댓글[1] 이미지첨부파일 끼룩 22-06-13 823
질문 아두이노 레오나르도 업로딩 오류댓글[1] 면지지 22-06-13 899
질문 통신에 대한 기초 책 추천댓글[2] 하리 22-06-13 1172
질문 스텝모터,릴레이모듈 9V 인가 (회로도 포함)댓글[1] 이미지첨부파일 아두이노대학 22-06-12 1030
질문 esp32댓글[1] 이미지첨부파일 ejdog 22-06-12 1128
질문 Simpletimer 라이브러리 질문입니다 홍머생 22-06-11 1050
답변 답변글 답변 : Simpletimer 라이브러리 질문입니다댓글[1] master 22-06-13 736
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기