Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 maja 2026, o 06:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 22 mar 2013, o 19:38 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

Nie mogę poradzić sobie z RC5 - algorytm rozkodowania działa (Z niebieskiej książki).

Teraz podłączone jest pod PD4 (PCINT28/OC1B/Timer 1) (Atmega644PA - kwarc 20Mhz)

Więc tak, próbuję rozkodować sygnał RC5 bez użycia ICP tak jak opisywał to Pan w pierwszej książce.
Jako, że na pinie PD4 dostępne jest przerwanie zewnętrzne chciałem je wykorzystać w celu sprawdzenia rodzaju zbocza (Nie mam pomysłu na inny sposób :? )

Po wciśnięciu num1 nic się nie dzieje :|

ir.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

ir.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 22 mar 2013, o 20:13 przez ps19, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 19:48 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

TIMER1_OVF_vect ??? i co to przerwanie wg ciebie ma robić ? :(

do tego odpalone INT2

EIMSK |= _BV(INT2);

po co ?

a jeszcze trzeci grzyb w barszcz PCINT ???? o co tu chodzi ? - sorki ale ja totalnie odjechałem próbując to przeanalizować .... a ty nie raczyłeś ANI jednego zdania napisać coś ty tu próbował wymodzić :( .... Myślę, że jak krok po kroku byś opisał co chciałeś uzyskać to sam zobaczyłbyś jaki tu panuje zamęt :( ....

na prawdę - napisz coś przy wrzucaniu takiego kodu - bo nawet pytania nie ma tu zadanego :( wiemy tylko że nie możesz sobie poradzić i co ? z czym ? jak ???? .... na tak zadane pytanie to trzeba byłoby zasiąść na parę godzin i próbować główkować jakie ty w ogóle miałeś zamiary a i tak podejrzewam że ciężko byłoby odgadnąć co tobą kierowało.

Dlatego opisz dokładnie jakie zmiany wprowadzałeś , co miały na celu wg ciebie? jakie efekty / funkcjonalność w stosunku do oryginalnej chciałeś osiągnąć ? no i wreszcie precyzyjnie opisz co ci nie działa i w jakich miejscach ...... ??

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 20:10 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

Uaktualniłem post



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 20:11 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Skoro chcesz użyć PCINT28 to używaj tylko przerwania od zmiany stanu na tym wejściu PCINT3_vect. Przepełnienie timera jest nieistotne. W obsłudze tego przerwania należy odczytać zawartość rejestrów timera 1 - TCNT1. Oczywiście taka metoda jest dużo mniej dokładna niż korzystanie z pinu ICP, bo tam zmiana powoduje automatyczne przepisanie wartości timera do rejestrów ICR1. Skoro nie używasz wejścia ICP możesz skorzystać z innego timera.

------------------------ [ Dodano po: 14 minutach ]

INT2 i zmiany w rejestrze EICRA też nie są potrzebne, bo nic nie masz podpięte pod to wejście.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 21:56 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

Co masz na myśli z innym timerem ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 22:26 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

ps19 napisał(a):
Co masz na myśli z innym timerem ?


Tak jak napisałem w książce i tak jak tłumaczy wyżej kolega Krauser - musisz spróbować najpierw dobrze zrozumieć zasadę działania tego co w książce - bo tak troszkę na razie po omacku dokonujesz zmian licząc że coś wyjdzie lub nie wyjdzie :(

To przerwanie akurat od ICP jest tutaj połączone że tak powiem zsynchronizowane z odczytami Timera1, dzięki czemu bardzo precyzyjnie po każdym zboczu otrzymujemy czas w us - każdego impulsu.

Owszem można to zrobić na innym przerwaniu i nawet na Timerze 8-bitowym, ale jednak trzeba wprowadzić wtedy dosyć drastyczne zmiany w kodzie.

Pomyśl sobie jeśli nie doprowadziłeś sygnału z pilota do wejścia ICP jak to jest oryginalnie w książce to w tym co zrobiłeś to przerwanie od ICP w ogóle ci się nie odpali nigdy .... sprawdzasz sobie chociaż diodą LED czy program wchodzi w przerwanie ? żeby to przeanalizować we własnym zakresie ? jak podpowiadam w książce ? - chyba nie :( .... a to podstawa - bo od razu byś widział że przerwanie nie działa bo jak ? co ma je wyzwalać ?

A skoro chcesz to przenieść na przerwania od PCINT to wszystko musiałoby się zaczynać właśnie w takim przerwaniu i tam odpalaniu jakiegoś timera, który będzie startował dopiero i odliczał czas do kolejnego przerwania PCINT na kolejnym zboczu.


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO