13
2016-Feb
[AVR] 입력받기 (풀업저항, 외부인터럽트)
작성자: Blonix
IP ADRESS: *.148.87.98 조회 수: 1994
DDRA &= ~(1<<PA0)
라는 식으로 해두면 포트 PA0의 비트가 클리어되며 입력받을 준비가 완료된다.
여기다가 내부 풀업저항을 설정해주고 싶으면 출력포트에 전압 걸어주는것 마냥
PORTA |= (1<<PA0)
라고 해주면 내부 풀업이 설정된다.
풀업 저항이란? 설명하기 귀찮아서 스크랩한다.
출처 :: http://skypoet.tistory.com/31

===================================================================
외부 인터럽트는 입력을 받았을때 발생하는 인터럽트로, 정해진 포트가 있다.
ATMega128의 경우 PD0~PD3, PE4~PE7 핀이다.
전자는 클럭이 필요하고 후자는 클럭이 필요하지 않다고 하는데 정확히 어떻게 다르게 쓰는지는 잘 모르겠다.
단, PE4~PE7 핀은 EICRB 레지스터를 사용하므로 상승,하강엣지 모두 인터럽트를 발생시킬 수 있다.
출처 :: http://miobot.tistory.com/25


#define BITSET(x) |= (1<<x)
#define BITCLR(x) &= ~(1<<x)
IntNum 에 넣는 숫자n에 따라 INTn 핀은 입력핀으로 설정됨과 동시에 상승엣지 인터럽트가 걸린다.
마지막 디폴트 줄은 내 다른 코드에서 쓰이는 에러처리 코드이므로 무시하자.