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

AVR305 - Jak poprawnie zaimplementować nieblokujące odbieranie UART?

malina555 30 Sty 2018 17:28 771 1
REKLAMA
  • #1 17000243
    malina555
    Poziom 14  
    Witam. Potrzebuje przerobić bibliotekę do programowego UART z noty atmela AVR305. MOże ktoś już z tym działa i wie jak to zrobić dobrze ?

    Na assemblerze nie specjalnie się znam ale wykoncypowałem żeby z coś w stylu licznika timeout żeby przy braku odbieranych znaków wychodził z tej funkcji sgetchar.

    Zrobiłem coś takiego ale coś to nie działa bo dalej program się blokuje :/

    Krótko mówiąc ustawiamy rejestry R26 i R27 (jako rejestr 16 bitowy) i dokonujemy odejmowania 1 czyli dekrementacji tego rejestru i jak dojdzie do 0 to powinno wyjść z tej funkcji. Takie coś wstawiłem do getchar1. Wydaje mi sie źe ten skok do ret może być nieprawidłowy :/ Pomoże ktoś ?

    Kod: AVR assembler
    Zaloguj się, aby zobaczyć kod


    W main.c wywołuję sobie to tak:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 17001198
    excray
    Poziom 41  
    Czemu chcesz to pisać w asemblerze? Zrealizuj sobie odbiór na bazie bufora kołowego. Znajdziesz sporo gotowych przykładów w C.
REKLAMA