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

Atmega328 - Przerobienie biblioteki rc5 Atmega8 -> Atmega328

marcin_klimek15 21 Maj 2014 18:56 3147 6
REKLAMA
  • #1 13622874
    marcin_klimek15
    Poziom 12  
    Witam wszystkich, robię mały projekt do którego używałem Atmegę8. Zaczyna mi brakować pamięci więc stwierdziłem, że wymienię ją na Atmegę328. Niestety jest trochę zabawy z przerobieniem kodu, po pierwsze w Atmega328 nie można używać PD0 itp, tylko PORTD0. Po drugie timery ustawia się innymi rejestrami. Ogólnie program sobie przerobiłem, niestety została mi biblioteka rc5, z którą nie mogę sobie poradzić. Na Atmedze8 wszystko mi ładnie działa, niestety na Atmedze328 już nie.
    Znalazłem, że rejestr GICR muszę zamienić na EIMSK, ale nie wiem co z rejestrem GIFR (czyli czyszczenie flagi przerwania), bo nie znalazłem jego odpowiednika w atmedze328.
    Prosiłbym kogoś obeznanego w temacie o pomoc, z góry dziękuję.

    Kod przed moją edycją:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Po moich zmianach:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 13622995
    zumek
    Poziom 39  
    Dotyczy ATMega328:
    Zainteresuj się rejestrami EICRA, EIFR, EIMSK, a bity ISCxx nie znajdują się już w MCUCR.


    PS
    Sprawdzenie tego, zajęło mi 5 minut :cry:
  • REKLAMA
  • #3 13623153
    marcin_klimek15
    Poziom 12  
    Dokumentacje wertowałem dłużej niż godzinę, niestety moja wiedza na temat avr jest znikoma, poza tym ta biblioteka nie jest moja i nie wiem co gdzie ma być ustawiane (oprócz tego co jest w komentarzach). Tymi rejestrami interesowałem się, niestety bez skutku. Spróbuję jeszcze raz.

    Edit: Następna godzina grzebania w dokumentacji i udało się. Dla potomnych zamieszczam bibliotekę rc5 pod Atmega168/328
  • #4 13819215
    Świeży k-ce
    Poziom 11  
    Ma ktoś przykład wykorzystania zamieszczonej biblioteki ?
    jeśli dobrze rozumiem muszę wpierw wywołać funkcję
    rc5_init();
    zmienna rc5_code przechowuje odebraną komendę ?
  • REKLAMA
  • #5 13820896
    marcin_klimek15
    Poziom 12  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Ja tak tego używam.
  • REKLAMA
  • #6 14236131
    dasej
    Poziom 32  
    Witam,

    przekroczyłem limit prywatnych wiadomości.
    a pilot pracuje na jakiś kodzie 32bity, chyba nie jest to RC5
    można prosić o kontakt na maila.

    Atmega328 - Przerobienie biblioteki rc5 Atmega8 -> Atmega328

    Dodano po 1 [godziny] 54 [minuty]:

    na bibliotece arduino popełnia błędy
    na tej działa topornie ale nie popełnia błędów
    da radę ktoś przełożyć to na avr gcc.

    link do strony autora http://cpre.kmutnb.ac.th/esl/learning/index.php?article=ir-receiver


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #7 15661023
    marcin_klimek15
    Poziom 12  
    Biblioteka po przeróbkach jest udostępniona dlatego chyba można zamknąć temat.
REKLAMA