logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega644P][C] - Przerwania + Bufor cykliczny USART

stefekz 17 Wrz 2012 23:00 2901 2
REKLAMA
  • #1 11321872
    stefekz
    Poziom 10  
    Witam,
    próbuję zaprogramować mikrokontroler,aby obsługiwał USART do komunikacji przez RS232. Chcę wykorzystać do tego bufor cykliczny, który zaimplementowałem w następujący sposób:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Testowałem go i wydaje się być działajacy. Chcę go użyć do obsługi USART w następujący sposób:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    funkcje wypisujące na lcd są na ten moment, tylko w celach diagnostycznych.
    Wywołuję to w mainie:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Nie wyświetla mi się już 'c'. Nie wyświetlają się również znaki, które wywołuję w obsłudze przerwania.
    Wywołanie funkcji USART_TransitByte powoduje wyświetlenie się na ekranie lcd : "56 130 24".
    W czym tkwi problem? Co zrobić, aby bufor cykliczny i przerwanie poprawnie działało
    Pozdrawiam
  • REKLAMA
  • #2 11322114
    Konto nie istnieje
    Konto nie istnieje  
  • #3 11322298
    stefekz
    Poziom 10  
    Chciałbym zrobić wysyłanie i odbieranie za pomocą przerwań(zgodnie ze sztuką),aby nie "zawieszać" wykonywania pozostałych operacji. Zacząłem od wysyłania. W wielu bibliotekach, które przeglądałem spotkałem się z takim podejściem, więc sam też postanowiłem je wykorzystać. W docelowym układzie oprócz UART, będzie wykorzystywany jeszcze sprzętowe SPI, TWI. Aktualnie testuje jedynie UARTa.
REKLAMA