ATMega128
마이크로프로세서_day08
Steady_sp
2017. 4. 26. 23:57
<Interrupt>
*polling : 코딩같은 방식( 한가지 밖에 못함 ) ex) while( );
*interrupt : 함수 호출 없어도 발생( 호출문이 없다. )
*SREG = 0x80 = 1 << 7 = sei() -> 7번비트를 활성화
-> sei() : 헤더파일에 #include<avr/interrupt.h>가 선언되어 있다면 sei()로 가능하다.
*EIMSK : 외부 interrupt
ex) 3번 7번 interrupt사용할때
EIMSK = 1 << INT3 | 1 << INT7;
*EICRA, EICRB : 외부 interrupt의 Trigger 방식
1 0 Falling edge : 눌렀을떄 바로 반응
1 1 Rising edge : 눌렀다 떼는순간 반응
0 0 LOW level : 누르고있을때 반응
0 1 일때 : 눌렀을때 반응 뗏을때 반응
-- 4번 스위치를 누를때 마다 LED를 좌로 이동
-- LED를 순차적으로 자로 shift 중 INT 7가 걸리면 5회 점멸
-> 두코드는 같다
-- INT5번누를때 마다 FND 5번에 숫자증가
-- INT 4번 : 숫자 증가, INT 7번 : 자리 이동 ( 자리이동하는부분 표시가안되는 단점)
사진
-- INT 4번 : 숫자 증가, INT 7번 : 자리 이동 ( 자리이동하는 부분 표시 )
사진