Skocz do zawartości

[C] Dwie ATmegi, komunikacja przez UART


Pomocna odpowiedź

Napisano

Mam problem ze skomunikowaniem dwóch procków między sobą. Pierwszy to ATmega48P, służący jako dekoder RC5, drugi to ATmega128 - główny mikrokontroler robota. Odpowiednie TXD i RXD jest połączone, jako 'biblioteki' używam kodu z http://mikrokontroler.info/usart-w-mikrokontrolerach-avr/ , który jest prostu implementacją kodu z datasheeta. Poprzez UART wysyłam kod przycisku zdekodowany na pierwszym uC i wyświetlam go na LCD. Problem jest taki, że niezależnie od wysyłanego kodu, na LCD pojawia się ta sama wartość - 240. Jakieś sugestie, pomysły? 🙂

Też kiedyś używałem tego kodu do obsługi USARTa. Może głupie pytanie ale jak podłączyłeś TXD i RXD? TXD jednego uC powinno być podłączone do RXD drugiego i analogicznie z drugim portem. Jeśli to jest ok to jakiego typu zmienna jest przesyłana przez USART?

Jak ja kiedyś próbowałem obsłużyć USARTa to miałem ciągle taki błąd, że na wyświetlaczu kod pokazywał mi się nie zawsze od początku. Tzn. wysyłałem ciąg znaków xyyyyyyz, a na wyświetlaczu nie dostawałem go w takiej postaci tylko np. jako yyyzxyyy i do końca nie dowiedziałem się dlaczego tak jest. Potem do wysyłanego kodu dodawałem * na końcu i zmieniłem wyświetlanie tak żeby ta * była zawsze na końcu i zadziałało.

Zmieniłem bibliotekę w obu mikrokontrolerach na bibliotekę Petera Fleury, działa bez problemu. Do zamknięcia.

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...