PINA_Bit0 이런 녀석이 winavr 쪽의 PINA0 이런것과 1:1 매칭이 되는지
PINA0 PORTA0 이런것이 정말 비트 단위로 읽어올수 있고 조작이 가능한지도 모호한 상황인데..
아무튼 아래의 링크는 iar 용 매크로 라던가 변수선언들을 변환하여
일반적인 avr용 컴파일러에서 컴파일이 가능하도록 해주는 래핑소스이다.
#define GPIO_BITREG(port,bitnum) \
((volatile BitRegisterType*)_SFR_MEM_ADDR(port) \
)->bit ## bitnum
#define PINA_Bit0 GPIO_BITREG(PINA,0)
#define PINA_Bit1 GPIO_BITREG(PINA,1)
#define PINA_Bit2 GPIO_BITREG(PINA,2)
#define PINA_Bit3 GPIO_BITREG(PINA,3)
#define PINA_Bit4 GPIO_BITREG(PINA,4)
#define PINA_Bit5 GPIO_BITREG(PINA,5)
#define PINA_Bit6 GPIO_BITREG(PINA,6)
#define PINA_Bit7 GPIO_BITREG(PINA,7)
[링크 : http://www.koders.com/c/fid4B73863201A18CBCB1076C1A7430B0EBF15B6E9F.aspx?s=crc] |
아무튼 자세한건 집에가서 AVR에다가 올려봐야 하려나 -_-
/* Input Pins, Port A */
#define PINA _SFR_IO8(0x19)
/* Data Direction Register, Port A */
#define DDRA _SFR_IO8(0x1A)
/* Data Register, Port A */
#define PORTA _SFR_IO8(0x1B)
/* Port A Data Register - PORTA */
#define PA7 7
#define PA6 6
#define PA5 5
#define PA4 4
#define PA3 3
#define PA2 2
#define PA1 1
#define PA0 0
/* Port A Data Direction Register - DDRA */
#define DDA7 7
#define DDA6 6
#define DDA5 5
#define DDA4 4
#define DDA3 3
#define DDA2 2
#define DDA1 1
#define DDA0 0
/* Port A Input Pins - PINA */
#define PINA7 7
#define PINA6 6
#define PINA5 5
#define PINA4 4
#define PINA3 3
#define PINA2 2
#define PINA1 1
#define PINA0 0
[출처: C:\WinAVR-20100110\avr\include\avr\iom128.h] |
-- 퇴근후 추가
대충해보니 머.. 정의문이라서 정수로 들어가다 보니 아무런 의미도 없는듯 -_-
아무튼,
PINA.0 이런식으로 구성이 가능한것은 code vision 쪽 확장인것으로 추측되고
winavr에서는 표준적으로 비트 마스킹을 통해서만 가능한 것으로 추측된다.
[링크 :
http://down.file.naver.com/howpc/kin.nhn?m=read§ion=read&docid=117760743&page=362]
[링크 :
http://cafe359.daum.net/_c21_/bbs_search_read?grpid=1DDsW&fldid=9E8k]