Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega8 - wysyłanie znaku przez RS232 do realterm

08 Lis 2013 18:56 2298 6
  • Poziom 7  
    Witam,

    mam mały problem. Napisałem program mający za zadanie wysyłać przez USART w pętli znak. Wgrałem program podłączyłem wszystko na płytce stykowej przez max232 z portem COM w komputerze, odpaliłem RealTerma. Jednak po włączeniu Atmegi zamiast oczekiwanego znaku zapełniającego konsolę w Realtermie ekran zapełnia się napisem (nul). I nie wiem czy błąd mam w kodzie, źle coś podpiąłem, a może max albo atmega jest uszkodzona albo gdzieś coś źle ustawiłem? Próbowałem też podpinać do laptopa przez adapter USB/rs232 ale taki sam efekt.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod
  • Specjalista - Mikrokontrolery
    Usuń podział częstotliwości przez 8 w bitach konfiguracji uC. No i nie definiuj F_CPU w pliku źródłowym, o czym mądrzy ludzie piszą tu min. 2 razy w tygodniu.
  • Poziom 7  
    W Atmega8 nie ma jak np w attiny13 fuse bitu dzielnika przez 8(no chyba, że tylko ja nie widzę go). Usunąłem linię
    Kod: c
    Zaloguj się, aby zobaczyć kod

    i zmieniłem linię
    Kod: c
    Zaloguj się, aby zobaczyć kod

    na
    Kod: c
    Zaloguj się, aby zobaczyć kod
    żeby wyliczało na podstawie prędkości zapisanej w Makefile.
    Jednak dalej odbiera mi NUL w realtermie
  • Poziom 12  
    Do obliczania UBRR możesz użyć makra z <util/setbaud.h>.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod: c
    Zaloguj się, aby zobaczyć kod

    Kiedy zapisujesz do rejestru UCSRC, musisz ustawić bit URSEL,
    jeżeli tego nie zrobisz dane lecą do UBRRH(rejestry mają taki sam adres, wybierasz bitem URSEL to którego chcesz pisać).

    pdf str 150, przykład str 146 --> PDF mega8
  • Poziom 17  
    Sprawdź taką zmianę:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Bitem URSEL wybierasz rejestr do którego zapisujesz (1=UCSRC,0=UBRRH)
    edit.
    dreamy był szybszy ;)
  • Poziom 7  
    dreamy, 2rs232 dzięki za pomoc.
    Próbowałem odpalić na symulatorze swój kod i działało. Cóż jednak nie można tym symulatorom za bardzo wierzyć