Skocz do zawartości

Odbrionik IR, program przeniesiony z arduino na atmega 328 nie rozpoznaje przycisków.


dejmieno

Pomocna odpowiedź

Witam,

Sprawa wygląda tak, że stworzyłem sobie na arduino odbiornik IR. W tym celu wykorzystałem bibliotekę IRremote.h. Spisałem sobie kody przycisków od pilota do TV i na arduino wszystko działa dobrze. Problem pojawia się gdy przenoszę plik hex na atmegę 328P, odbiornik odbiera sygnały jednak program nie wchodzi do instrukcji warunkowych gdzie jest porównanie kodów.

Kod porównujący wygląda mniej więcej tak:

  
#define leftCode 31

if (iRrec.decode(&results)) {
   byte code = results.value;
   if(code == leftCode) {
     analogWrite(leftMotorS, 150);
     leftMotorForward();
   }
   iRrec.resume();
 }

Jest to dziwna sprawa bo program wchodzi do głównego ifa gdy wciskam przycisk na pilocie, ale porównanie kodów w niższych ifach już nie przechodzi.

[ Dodano: 10-06-2017, 21:37 ]

Już chyba domyślam się co jest nie tak. Arduino Uno jest chyba taktowane zewnętrznym kwarcem 16mhz, a Atmega328P-PU standardowo jest taktowane 8mhz, więc pewnie przez to inaczej są bity odczytywane.

Czy żeby mieć wszystko 1 do 1 po przeniesieniu hex do atmegi to muszę dodać kwarc 16mhz tak?

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.