도와주세요!!
글 수 15,339
2009.03.15 20:03:25 (*.248.224.143)
10869
EZ-X5 USER'S MANUAL(2006년 6월 revision 1.1)을 보고 질문드립니다.
gpio.c에서 GAFR 설정하는 부분을 보면...
GAFR0_L &= ~( GPIO_OUTPUT_MASK );
이렇게 설정하고 있는데요-
GAFR은 해당 GPIO pin에 대해 2bit씩 할당되어있는 거잖아요-
그런데 GPIO_OUTPUT_MASK를 사용하는 건 잘못된 게 아닌가요?
GPIO_OUTPUT_MASK는 GPIO 0번부터 31번 중 출력으로 사용되는 pin들에 대한 정보를 가지고 있으니까요.
USER'S MANUAL의 설명대로라면,
reset돼서 0으로 설정되어있는 덕에 예제 프로그램이 작동하는 것 같은데-...
그리고 한 가지 더 질문드리고 싶은건-
GAFR0_L의 0, 1번 bit가 GPIO 0번 pin에 연결되고,
GAFR0_L의 2, 3번 bit가 GPIO 1번 pin에 연결되고...
이렇게 차례대로 할당되어있는 건지 여쭙고 싶네요-
gpio.c에서 GAFR 설정하는 부분을 보면...
GAFR0_L &= ~( GPIO_OUTPUT_MASK );
이렇게 설정하고 있는데요-
GAFR은 해당 GPIO pin에 대해 2bit씩 할당되어있는 거잖아요-
그런데 GPIO_OUTPUT_MASK를 사용하는 건 잘못된 게 아닌가요?
GPIO_OUTPUT_MASK는 GPIO 0번부터 31번 중 출력으로 사용되는 pin들에 대한 정보를 가지고 있으니까요.
USER'S MANUAL의 설명대로라면,
reset돼서 0으로 설정되어있는 덕에 예제 프로그램이 작동하는 것 같은데-...
그리고 한 가지 더 질문드리고 싶은건-
GAFR0_L의 0, 1번 bit가 GPIO 0번 pin에 연결되고,
GAFR0_L의 2, 3번 bit가 GPIO 1번 pin에 연결되고...
이렇게 차례대로 할당되어있는 건지 여쭙고 싶네요-
set_GPIO_mode() 함수를 사용하세요
예) set_GPIO_mode( 0 | GPIO_OUT );
set_GPIO_mode( GPIO15_nCS_1_MD );