이상하게 진짜 잘 안됩니다 ㅠ_ㅠ;;
http://c.doowon.ac.kr/book/avr/CarRemocon/CarRemocon.htm
위의 링크된 사이트에 나와있는데로 코드를 했습니다...
PSH는 포트A의 0번에 연결했고, 데이터D0~D7은 포트D에 연결했습니다..
while (1)
{
if(PINA.0==1) {
switch(PIND) {
case 0x00 : // 전진
PORTC=0x05;
break;
여기서 문제가 되는 부분이 바로 if문입니다. PINA0==1인데, 아무리해도 저부분이 실행이 되지 않네요...
테스터기로 전압을 측정을 해봤더니 최대4.5v나오더라구요... 5V가 나오지 않아서, 실행이 안되는걸까요?
사용하는 컴파일이 달라서 당연히 컴파일러에 맞게 수정했구요.
if문없이 실행을 하면 작동이 되긴 됩니다. 코드가 들어오긴 하는데, 일정하게 들어오지 않고 리모콘 버튼을 연타해줘야 가끔 실행이 됩니다 -_-
ir모듈 스펙도 함께 올리겠습니다. 한번 살펴봐주세용 ㅠㅠ
그리고 일단은 DDRA = 0X00; 형식으로 입력포트로 레지스터 설정을 해주셔야 동작이 될테구요
이렇게 했다면 일반적으로 4.5 v면 high로 인식되기는 좀 부족한 느낌이 드는군요
AVR은 4.7V이상을 HIGH로 인식하거든요 .. 전압상의 문제라면 풀업(PULL-UP) 저항을 달아보세요^^;;
VCC에 연결한 저항을 병렬로 신호선에 연결해 주시면됩니다. 자료실에 풀업저항에 대한 자료가 아마 잇을것입니다.
PS. 오늘도 술먹은 운용자가 한마디 적고 갑니다..ㅋㅋ
프로그래밍은 당연히
DDRA=0x00;
PORTA=0xFF; <-Full-up enable //수신기의 PSH포트와 PORTA0이 연결됨
DDRD=0x00;
PORTD=0x00; <- 수신기의 데이타와 연결됨 D0~D7
VCC에 연결한 저항을 병렬로 신호선에 연결해 주시면됩니다 <-이 말이 -_-;; 이해가 안되네요
VCC에 따로 연결한 저항은 없습니다 -0-;;
128은 7805레귤레이터에서 나오는 5v를 128의 vcc단자에 직접들어가게 회로를 구성해놨습니다 -_-;
궁금한 건, 몇옴짜리의 저항을 어떻게 달아줘야 하는건가요 -_-?;
vcc에 저항은
vcc- 10k저항-신호선에 연결
이런식으로 해주시면 풀업저항이구성됩니다^^;
아! 그렇다면, 저렇게하면 외부풀업저항을 사용하게 되는건데요, 코드짤 때 내부풀업은 disable해줘야 하나요? 아니면 enable해줘야 할까요-0-?
지금 접속해게시네요..ㅋㅋ
내부적 풀업은 어떻게 하든 상관없습니다만 해주는게 좋지요.
어차피 수십킬로에서 수십메가급 풀업인데요..