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

Odbiór/wysłanie danych przez UART1 - Atmega 128

bartchez 10 Maj 2012 22:25 1415 6
  • #1 10882935
    bartchez
    Poziom 10  
    Witam
    Przy zmianie avr z 162 na 128 napotkałem na problem nie potrafcie odczytać ani wysłać dane przez UART1. W 162 miałem prosty kod który działa bez zarzutu.
    Niestety na 128 już nie, analogicznie zamiast 0 wstawiam 1 bo chodzi o UART1 mimo to nie dział.

    Proszę o pomoc.


    Kod 162
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    niesprawny kod 128
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Proszę poprawić błędy ortograficzne w komentarzach, a na przyszłość, kod ujmować w tagi[SYNTAX].
    [zumek]
  • #2 10883073
    kwikam
    Poziom 10  
    Zamiana z 0 na 1 może nie rozwiązać problemu. Sprawdź dokładne opisy rejestrów w datasheecie. Kompilator może nie wywalać błędu a program nie będzie działał
  • #3 10883095
    bartchez
    Poziom 10  
    Właśnie teoretycznie powinno działać, tzn tak mi się wydaje po datasheet.
  • #4 10883461
    piotrva
    VIP Zasłużony dla elektroda
    Sprawdź to dokładnie, rejestr po rejestrze, ponadto czy taktowanie procesorów takie samo w obu przypadkach?
  • #5 10883676
    bartchez
    Poziom 10  
    Kombinuje już tyle czasu, że sam nie wiem co źle robię. Wydaje mi się że jednakowe (może już nie widzę od tego ciągłego siedzenia przy tym problemie). 128 nie posiada jedynie URSEL0 w UCSR0C. Wróciłem nawet do standardowego taktowania procka i tak nie pomogło.
  • #7 10883866
    bartchez
    Poziom 10  
    Tak wiem o tym wyłączyłem.

    Dodano po 3 [godziny] 30 [minuty]:

    Trochę to trwało ale się udało.Nie wiem czy źle deklarowałem prędkość transmisji czy co ale działa to najważniejsze.
    Dużo pomógł kod dla UART0:
    [url=]https://www.elektroda.pl/rtvforum/topic1840367.html[/url]


    Kod: text
    Zaloguj się, aby zobaczyć kod
REKLAMA