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

[ATmega8][C][rs232]Nie dzała "echo". (Wysyłanie z PC na avr i spowrote

D12 24 Paź 2011 19:34 1713 2
REKLAMA
  • #1 10061593
    D12
    Poziom 14  
    Funkcja wysyłania działa mi dobrze. Funkcja odbierania niby dioda mignie jak coś odbierze, ale czy działa prawidłowo to nie wiem.

    W każdym razie gdy z PC wyślę coś dioda potwierdzi, że coś odebrałem, ale gdy wyśle to z powrotem to nic nie otrzymuje.

    Kod programu:
    rs232.h
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


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


    main.c
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10063207
    Terminator
    Poziom 23  
    Ustawiasz
    Kod: text
    Zaloguj się, aby zobaczyć kod

    a gdzie to przerwanie jest obsługiwane ? Ja nie widzę
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 10063888
    D12
    Poziom 14  
    To znaczy mam dwa sposoby odbierania w zależności jak skompiluje. Mogę odbierać za pomocą przerwania lub cały czas nasłuchując.
    Terminator napisał:
    (1<<RXCIE)

    To mam w funkcji USART_Init
    Terminator napisał:
    sei();

    To mam w funkcji odbior_z_przerwaniem

    A resztę posta muszę przetrawić :)


    Dobra zacząłem coś odbierać tylko, że to co ja odbieram ma się ni jak do tego co wysyłam. Jak wysyłam co chwile ten sam znak to raz jest coś raz jest coś innego, potem z powrotem to za pierwszym razem. Jak wysyłam inny znak to zdarza się że otrzymuje te same wartości w hex co poprzedni znak. I też się zdarza, że po wysłaniu jednego znaku otrzymuje dwa hexy. I też się zdarza, że po wielokrotnym wysyłaniu nic nie otrzymuje.

    ciągle wysyłałem znak z
    \0x00\0x00\0x80\0xbd\0x00\0x00\0x00\0x00\0xbd\0x80\0x00\0x00\0x00\0x8f\0x00\0x00\0x8f\0x00\0x8f\0xbd\0x00\0x80\0x00\0xbd\0x00\0x00\0xbd\0x00


    ciągle wysyłałem znak y
    \0x00\0x00\0xfd\0x8f\0x00\0x00\0x80\0x80\0x00\0xe0\0x00\0xfd\0xfd\0x80\0x00\0x80\0xfd\0x00\0x00\0x80\0x80\0x80\0x80\0x80\0x8f\0x80\0x00\0x00


    ciągle wysyłałem znak p
    \0x00\0x00\0x80\0x00\0x0f\0x00\0x0f\0x0f\0x00\0x00\0x80\0x00\0x0f\0x00\0x00\0x0f\0x00\0x00\0x00



    Dobra poprawka. Teraz odbieram. Miałem złe ustawienia w programie CuteCom (hardware i software, trzeba było od kliknąć)
    Tylko, że pojawiają się przekłamania, jak wysyłam przez CuteCom litery. Raz wyśle dobrze raz jest błąd. Ale jak wysyłam hexy to na razie nie zauważyłem problemu.
    Problem pojawia się gdy wysyłam np:
    
    0x7896 otrzymuje fb 96 
    0xff00ff00ff00 otrzymuje ff 01 ff 00 ff 00 
    
REKLAMA