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

ATmega 32 - Kod nadajnika nie działa, komenda pokazuje same zera

squelch 12 Kwi 2015 20:27 684 3
REKLAMA
  • #1 14611789
    squelch
    Poziom 11  
    Cześć

    Ten kod mi nie działa.Czy moglibyście rzucić na niego okiem.
    Ten kod poprostu ma za zadanie nadawać w standardzie space.Ladnie pokazuje adres ale nie działa komenda pokazuje same zera.

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 14612465
    BlueDraco
    Specjalista - Mikrokontrolery
    Tu na pewno jest błąd:

    buffer|=(buffer|(negated_command<<16));

    - (negated_command<<16) ma zawsze wartość 0

    ... i podejrzewam, że nie jest to jedyny błąd w tym kodzie.

    powinno być:
    buffer |= (uint32_t)negated_command << 16;

    choć to niezbyt formtunne rozwiązanie, bo AVR jest rocesorem 8-bitowym i okrutnie się namęczy suwając 32-bitową daną
  • REKLAMA
  • #4 14613779
    dondu
    Moderator na urlopie...
    squelch napisał:
    Ale czegość tu jeszcze nie rozumiem przecież mam kwarc 8MHz i stosuje delay_us(value);a value to czas nagłówka i bitów w mikrosekunndach
    czy czas nie powinien się wydłużyć ośmiokrotnie??????

    Zastanów się jeszcze raz nad tym co napisałeś vs nazwa funkcji: delay_us

    Innymi słowy, czy ta funkcja jest funkcją liczoną w taktach mikrokontrolera, czy w mikrosekundach?
    Dlaczego miałaby odmierzać inny czas dla różnych częstotliwości taktowania mikrokontrolera?
REKLAMA