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

Jak dostosować procedurę RC5 w asemblerze do ATtiny2313?

MacGyver 7 03 Kwi 2008 19:48 2902 12
REKLAMA
  • #1 4989984
    MacGyver 7
    Poziom 21  
    Posty: 417
    Pomógł: 37
    Ocena: 41
    Wiem że temat był wałkowany, ale wszystkie procedury, jakie udało mi się znaleźć były w bascomie albo w C. Jedyną jaką udało mi się znaleźć w asemblerze jest ta z książki "Mikrokontrolery ATmega w praktyce" (procedura w załączniku). Ponieważ dopiero raczkuje w tej dziedzinie proszę, aby ktoś pomógł mi ją dopasować do ATtiny2313. Zegar mam wewnętrzny 1MHz, Odbiornik podłączony do linii PD2 (pozostałe linie portu PD sterują wyświetlaczami LED), licznik T0 też jest użyty do sterowania wyświetlaczami. Ma to być urządzenie odbierające sygnał RC5 i wyświetlające kod rozkazu i urządzenia.
    Załączniki:
    • P7 - Pilot.zip (41.85 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 4990756
    dawid512
    Poziom 32  
    Posty: 1439
    Pomógł: 229
    Ocena: 6
    A koniecznie musi być w asm? Wiele ludzi narzeka na Bascoma ale do tego typu rzeczy jest napewno najszybszy.
  • #3 4990789
    don diego
    Poziom 32  
    Posty: 1557
    Pomógł: 165
    Ocena: 63
    Nota aplikacyjna AVR410 Atmela, ale tam chyba jest użyty ten licznik. W każdym razie u mnie śmiga na ATtiny 2313.
  • REKLAMA
  • #4 4992729
    MacGyver 7
    Poziom 21  
    Posty: 417
    Pomógł: 37
    Ocena: 41
    Nie korzystam z not Atmela gdyż chyba wszystkie są po angielsku, a u mnie z tym ciężko:cry:. Pomęcze się jeszcze kilka godzin z kodem z załącznika
  • #5 4992745
    don diego
    Poziom 32  
    Posty: 1557
    Pomógł: 165
    Ocena: 63
    Jeśli znasz asemblera, to sobie poradzisz. Nie pamiętam dokładnie, ale dla ATtiny2313 wystarczy chyba tylko zmienić definicję procesora. Orginał jast na tiny1200 zdaje się.
  • #6 4996691
    dj_max84
    Poziom 13  
    Posty: 138
    Pomógł: 2
    Ocena: 20
    attiny2313 nie ma portu A ktory jest potrzebny w tym programie
    poza tym mam jakies bledy ze stosami przy kompilacji. przyjrze sie dokladnie jak bede mial chwile
    czemu nie kupisz po prostu Megi8 (4zl) albo jakiejs innej Megi z dodatkowymi portami?
  • #7 4996767
    don diego
    Poziom 32  
    Posty: 1557
    Pomógł: 165
    Ocena: 63
    Port A nie jest potrzebny. Mówię Ci, że używałem tego programu.
  • #8 4996906
    MacGyver 7
    Poziom 21  
    Posty: 417
    Pomógł: 37
    Ocena: 41
    Spróbuje tego AVR410, ale powiedz mi, jak go dostosować do zegara 1MHz lub przetaktować mojego Tiny do 4MHz? I co właściwie robi ten program?

    ps, megi nie kupie bo już mam płytkę i wszystko na ATtiny2313, a tak poza tym to byłaby to kapitulacja :D
  • REKLAMA
  • #9 4996928
    dj_max84
    Poziom 13  
    Posty: 138
    Pomógł: 2
    Ocena: 20
    zgadza sie. da sie to wszystko upchnac w 2 portach. oprocz tego trzeba poprawic kilka instrukcji tych nie obslugiwanych przez 2313 jak CALL i JMP. caly czas mam jakies bledy w stosach i przerwaniach przy kompilacji
  • #10 4997015
    don diego
    Poziom 32  
    Posty: 1557
    Pomógł: 165
    Ocena: 63
    Musi chodzić na 4MHz, może być wewnętrzny oscylator.
  • REKLAMA
  • #11 4997193
    MacGyver 7
    Poziom 21  
    Posty: 417
    Pomógł: 37
    Ocena: 41
    jak mam ustawić bity żeby było 4MHz? Zawsze bałem się tego ruszać bo mam tylko programator ISP. To jest kopia ustawień z mego procka.
    Załączniki:
    • Jak dostosować procedurę RC5 w asemblerze do ATtiny2313? fusebity.PNG (11.75 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #12 4998297
    don diego
    Poziom 32  
    Posty: 1557
    Pomógł: 165
    Ocena: 63
    Ustaw jak tutaj.
  • #13 4999122
    MacGyver 7
    Poziom 21  
    Posty: 417
    Pomógł: 37
    Ocena: 41
    Działa :D ,ale nie każdy przycisk, te co działają wydają się odczytywać kod prawidłowo. Może mieć to związek z bitem S2, który w nowszych wersjach RC5 jest 7 bitem rozkazu?
    W pilocie od wiezy (po zmianie adresu na 16) to nawet mało który przycisk działa.

    Dodano po 6 godzinach
    Już znalazłem problem :idea: . Pilot wysyła sygnały o różnym kodzie rozkazu i różnym adresie urządzenia. Nawet pojedynczy przycisk może wysyłać ten sam rozkaz z trzema adresami (zależnie od ostatnio wybranego urządzenia CD, TAPE itp).
    Dziękuje wam za pomoc, dalej może sobie już poradze.

Podsumowanie tematu

✨ Dyskusja dotyczy dostosowania procedury odbioru sygnału RC5 napisanej w asemblerze dla mikrokontrolera ATtiny2313. Autor posiada kod w asemblerze przeznaczony pierwotnie dla innego mikrokontrolera (prawdopodobnie ATtiny1200) i prosi o pomoc w adaptacji do ATtiny2313 z wewnętrznym zegarem 1 MHz oraz odbiornikiem podłączonym do linii PD2. Wskazano, że konieczne jest zwiększenie częstotliwości taktowania do 4 MHz (wewnętrzny oscylator), co wymaga zmiany fuse bitów mikrokontrolera. Zwrócono uwagę na różnice w dostępnych portach (brak portu A w ATtiny2313) oraz konieczność modyfikacji instrukcji CALL i JMP, które mogą nie być obsługiwane w oryginalnym kodzie. Polecono zapoznanie się z aplikacyjną notą AVR410 Atmela, która zawiera implementację odbioru RC5 działającą na ATtiny2313, choć jest w języku angielskim. Po zmianie taktowania i dostosowaniu kodu autor potwierdził działanie programu, zauważając jednak, że różne przyciski pilota mogą wysyłać różne kody rozkazu i adresu urządzenia, co wymaga uwzględnienia w odbiorze. Dyskusja obejmuje także sugestie dotyczące użycia Bascoma jako alternatywy dla asemblera oraz propozycję użycia mikrokontrolera ATmega8 jako łatwiejszej platformy, jednak autor pozostaje przy ATtiny2313 ze względu na posiadaną płytkę.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA