반응형

inp(PINC) 에서 각 포트별로 입력받기 당연히 가능합니다. 예로 포트C의 1번 포트(PC0) 만 5V 이면 00000001 이고 2번포트(PC1)만 5V이면 00000010 이되고 1번포트(PC0)와 2번 포트(PC1)가 모두 5V 이면 00000011 이 됩니다. 그리고 AVR에서는 각 비트별로도 입력 및 제어가 가능합니다. "avrsfr_defs.h" 에 보면 아래와 같은 매크로가 정의 되어있습니다.

bit_is_set(sfr, bit); bit_is_clear(sfr, bit); loop_until_bit_is_set(sfr, bit); loop_until_bit_is_clear(sfr, bit);

bit_is_set(sfr, bit); 은 해당 래지스터의 해당비트가 현재 로직 '1'인지를 검사하는 함수로써 간단한 사용 예를 들면


#include <avrsfr_defs.h>
if(bit_is_set(PINC, 0)) {
   loop_until_bit_is_clear(PINC, 0);
}
else {
   loop_until_bit_is_set(PINC, 0);
}

WinAVR이 설치된 폴더에서 "docavr-libc" 폴더에 보면 라이브러리 설명서가 있습니다. 참고하세요.
반응형

+ Recent posts