반응형
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" 폴더에 보면 라이브러리 설명서가 있습니다. 참고하세요.
반응형
'Tip & Tech > Both | Other' 카테고리의 다른 글
Oracle sql 관련. 예약어와 같은 이름의 테이블, 변수사용 시 (0) | 2010.10.21 |
---|---|
AVR-GCC에서 Function Prototype (0) | 2010.10.21 |
아파치 RedirectMatch 문법을 통한 자동으로 'www'붙이기 (0) | 2010.10.20 |
MySQL에서 Oracle과 같이 rownum 만들기. (0) | 2010.10.20 |
Oracle DATAFILE SIZE를 줄이는 방법 (0) | 2010.10.20 |