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

[Atmega8][avr-gcc] - Obiornik DMX na Atmega8 -właściwy odbiór pakietów

mikol95 25 Wrz 2013 23:33 1089 0
  • #1 25 Wrz 2013 23:33
    mikol95
    Poziom 14  

    Witam szanownych forumowiczów!

    Od niedawna staram się nauczyć języka C na AVR. Postanowiłem zbudować poza migającą diodą LED i całą resztą "mini projektów" odbiornik sygnału DMX. W zamierzeniu chcę zrobić DIMMER PACK (sterowanie jasnością 4 urządzeń, stąd 4 kanały i detekcja przejścia przez zero). Jednak przy pisaniu programu napotkałem dość znaczące problemy. Mogę odbierać dane każdego kanału w przerwaniu od RXC (typowa ramka USART) jednak jak zdekodować pozostałe pakiety? Mam tu na myśli szczególnie break, gdyż dzięki niemu program dowie się kiedy jest nadawany cały pakiet danych od początku, ale również mab i mniej znaczące mtbf i mtbp. Czy jest to wykonalne w przerwaniu od USART? Czy trzeba to zrobić raczej programowo? (np. jakimś przerwaniem od INT)
    Poza tym nie wiem czy mój program ma prawo działać. Tzn nie wiem czy przerwania nie pochłoną zbyt dużo czasu pracy, nie znam na tyle assemblera żeby to sprawdzić (nie jestem pewien czy pętla główna zdąży się wykonać, taktowanie ustawione na 16MHz).

    Z góry kolegom (i koleżankom) dziękuję ;)

    Program główny:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Plik nagłówkowy:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Plik .lss:
    Kod: asm
    Zaloguj się, aby zobaczyć kod

    0 0
  • Metalwork