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

[Atmega162][ASM,c] Niepoprawna transmisja przez RS-232

Krolas 03 Sie 2011 00:01 1424 1
  • #1 9786724
    Krolas
    Poziom 9  
    Witajcie.

    Złożyłem układ według tego schematu (tutaj inny procesor i kwarc):
    [Atmega162][ASM,c] Niepoprawna transmisja przez RS-232
    Zaprogramowałem Atmegę:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    tak aby wysyłała przez USART jeden bajt co około jedną sekundę (kolejne liczby całkowite)
    Mam program na PC w c:

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


    i przez cały czas odczytuje jedynie jakieś liczby z przedziału <112;127>.
    Próbowałem zmieniać różne ustawienia np.: ilości bitów danych i stopu, szybkość, i zmianiałem transmisję na synchroniczną. Niestety jedyny i najlepszy efekt jaki uzyskałem to przy tych ustawieniach (w ogóle działa). Wydaje mi się, że nie odczytuje najmłodszych i najstarszych bitów- łapie coś ze środka.

    Skończyły mi się pomysły. Co jest nie tak? Może coś przeoczyłem i ustawienia w µP są nie zgodne z tymi na PC? Proszę o pomoc. Dzięki z góry.

    Pozdrawiam.
  • #2 9786842
    LordBlick
    VIP Zasłużony dla elektroda
    1. Zamiast konsolaka pod win polecam coś z większymi możliwościami :
    http://sites.google.com/site/terminalbpp/
    2. Przejrzenie tego tematu byłoby wskazane:
    https://www.elektroda.pl/rtvforum/topic530034.html
    3. Skoro używasz breq, to już z brne w następnej linijce daj sobie na luz - jak coś jest wykluczone jako zerowe/tożsame to jest niezerowe/różne...
    4. Pozwoliłem sobie uprościć i poprawić kod(brak sprawdzania flagi gotowości wysyłania USART0), przyjmując, że machanie rejestrem DDR to dziwaczna próba gaszenia i zapalania LED-a oraz, że kompilator to AVRasm2 (obsługuje preprocesor C):
    Kod: text
    Zaloguj się, aby zobaczyć kod
REKLAMA