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



Teraz jest 19 lut 2025, o 14:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 3 sie 2016, o 19:35 
Offline
Nowy

Dołączył(a): 03 sie 2016
Posty: 7
Pomógł: 0

Cześć, to mój pierwszy temat tutaj. Mam problem z zaprogramowaniem układu żeby odbierać sygnał z pilota. Jestem w tym kompletnie zielony, programuje dużo ale tworze programy w c++ na komputerze i teraz widzę że to się bardzo różni od siebie. Na początku szukałem jakiejś biblioteki z której miałem nadzieje że po załączeniu jej będę miał wszystko gotowe ale wiedziałem że tak łatwo na pewno nie będzie. Znalazłem bibliotekę z stąd https://github.com/jwalkiew/ir_nec . Schemat mojego układu znajduje się poniżej oraz pilot z którego korzystam http://www.dfrobot.com/index.php?route= ... 6I05zVK8fW . Chciałbym się najpierw dowiedzieć czy będzie można przystosować tą bibliotekę do mojego układu? No i co jest do zmiany bo jak ja się za to zabrałem to zyskiwałem tylko coraz więcej błędów po kompilacji. Podaje też kod który na razie udało mi się znaleźć. Na początku chciałem tylko dostać jakąś odpowiedź że pilot działa za pomocą diody, ogólnie to całość ma sterować silnikiem rolety która jest podpięta do mostka H.

main.c
Cytuj:
#define F_CPU 1000000UL <--- TEGO NIGDY NIE ROBI SIĘ W KODZIE PROGRAMU


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


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


nec.h
Cytuj:
#ifndef F_CPU
#define F_CPU 8000000
#endif
<--- TEGO NIGDY NIE ROBI SIĘ W KODZIE PROGRAMU


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


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


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

Obrazek

Edit: dziękuje administracji za wyrozumiałość :)



Ostatnio edytowano 8 sie 2016, o 20:30 przez katff, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2016, o 18:48 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego przeczytaj ten wątek topic10813.html i ten topic7144.html#p83490

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2016, o 20:33 
Offline
Nowy

Dołączył(a): 03 sie 2016
Posty: 7
Pomógł: 0

Szukałem już podobnych tematów na forum, pierwszy widziałem. Ten drugi podany temat nie za bardzo mi pomógł, chociaż to raczej wina mojej nie wiedzy ;/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2016, o 06:46 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego podany tam kod do systemu nec działa w 100% bo sam aktualnie jestem w trakcie pracy nad projektem obsługującym pilota w standardzie NEC

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2016, o 17:30 
Offline
Nowy

Dołączył(a): 03 sie 2016
Posty: 7
Pomógł: 0

Jeszcze raz przejrzałem te tematy i jestem na tym samym etapie co przedtem, if(frame_ready) warunek nigdy nie jest prawdziwy,jak po za warunkiem wstawię kod odpowiedzialny za włączenie diody to świecą.

Cytuj:
#define F_CPU 1000000UL <--- TEGO NIGDY NIE ROBI SIĘ W KODZIE PROGRAMU

[ obiecuję, że po kolejnym umieszczeniu na forum przez kolegę kodu z tego typu wpisem - kod będzie usuwany bez ostrzeżenia ok? - mirekk 36 ]


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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2016, o 20:58 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego a po co to #define F_CPU 1000000UL?

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2016, o 23:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
...a to?
katff napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zresztą pogubiłem się - sprawdź w kodzie gdzie właściwie się podpinasz z tym IR, bo coś nie tak.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2016, o 20:39 
Offline
Nowy

Dołączył(a): 03 sie 2016
Posty: 7
Pomógł: 0

matekogon napisał(a):
Kolego a po co to #define F_CPU 1000000UL?


Żeby zdefiniować prędkość zegara. Nie bardzo rozumiem sens takich pytań. mirekk 36 znalazłem teraz filmik gdzie to objaśniłeś, poprawione.

Kicajek

Podejrzewam że właśnie w tym jest błąd że źle coś podpiąłem. Miałem drobną przerwę ale jeszcze raz wrócę do tego kodu i spróbuje zrozumieć co jest źle i poprawić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2016, o 04:51 
Offline
Moderator
Avatar użytkownika

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

katff napisał(a):
Nie bardzo rozumiem sens takich pytań.

A tu na forum każdy rozumie - i mam nadzieję że ty teraz po tym poradniku również ;) U nas jest taka zasada że nie używa się #define F_CPU w kodach na forum i tego się trzymamy - jak widać warto ;)

_________________
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: 19 sie 2016, o 10:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lip 2013
Posty: 208
Lokalizacja: Kielce
Pomógł: 15

mirekk36 napisał(a):
katff napisał(a):
Nie bardzo rozumiem sens takich pytań.

A tu na forum każdy rozumie - i mam nadzieję że ty teraz po tym poradniku również ;) U nas jest taka zasada że nie używa się #define F_CPU w kodach na forum i tego się trzymamy - jak widać warto ;)



Tymbardziej, że w nec.h i main.c były ustawione dwie różne częstotliwości.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2016, o 11:13 
Offline
Moderator
Avatar użytkownika

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

danny napisał(a):
Tymbardziej, że w nec.h i main.c były ustawione dwie różne częstotliwości.

To jest właśnie KLASYCZNY przypadek tego co się dzieje, gdy ktoś to robi w kodzie a później mu coś nie działa i musi poświęcać już nie godziny a dni na szukanie błędu jak mówiłem.

_________________
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: 19 sie 2016, o 18:23 
Offline
Nowy

Dołączył(a): 03 sie 2016
Posty: 7
Pomógł: 0

No ale poprawne zdefiniowanie prędkości zegara na razie nie sprawiło żeby program zadziałał, więc to chyba za wcześnie żeby pisać że jest to klasyczny przykład tego jak takie ustawianie częstotliwości szkodzi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2016, o 18:39 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

katff napisał(a):
No ale poprawne zdefiniowanie prędkości zegara na razie nie sprawiło żeby program zadziałał, więc to chyba za wcześnie żeby pisać że jest to klasyczny przykład tego jak takie ustawianie częstotliwości szkodzi.



Kolego piszę ci że kod działa na 100% bo akurat pracuję nad pewnym projektem i korzystam z tego kodu. Mam pilota z kodowaniem nec. Więc u ciebie widzę takie opcję .Pilot nie jest w standardzie NEC. Źle masz coś podłączone. Gdzieś popełniłeś błąd w kopiowaniu kodu

Może być jeszcze jedna sytuacja Odbiornik podczerwieni nie masz na częstotliwość 38khz. Podobno nie ma to wpływu może zmniejszyć się zasięg ale u mnie niestety pilot nie chciał ruszyć na 36khz po zmianie na 38khz śmiga aż miło

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2016, o 18:53 
Offline
Nowy

Dołączył(a): 03 sie 2016
Posty: 7
Pomógł: 0

Sprawdziłem odbiornik ma 38 kHz, pilot jest w standardzie NEC, wszystko jest dobrze podłączone, musi być jakiś błąd w kodzie.

Edit:Przedtem sprawdziłem też diodami że program nie przechodził do ISR, zmieniłem trochę program, teraz wchodzi do ISR ale warunek if(frame_idx < 32) nie przechodzi

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2016, o 21:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
A to ma tak być, że w TIMER0_OVF_vect sprawdzasz ICR1?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 16:24 
Offline
Nowy

Dołączył(a): 03 sie 2016
Posty: 7
Pomógł: 0

Nie wiem, nic o tym nie udało mi się znaleźć co by mi pomogło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 17:19 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego jaką masz atmegę dokładnie bo jeśli tą co na rysunku Atmega88 to ICP1 jest na pinie PB0 a żeby skorzystać z tego przerwania to musisz użyć timera "1" a nie tak jak konfigurujesz timera "0" :D

Czyli mówiąc w skrócie. Skopiuj całą bibliotekę z linku który ci wcześniej podałem zmień tylko konfigurację timera 1 pod twój avr i port z PD6 na Twój czyli PB0. ;)

Powinno wszystko śmigać :)

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 19:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
katff napisał(a):
Nie wiem, nic o tym...

Moje pytanie było raczej retoryczne - porównaj to z oryginalnym kodem.
A może prześledź Twój wątek od początku, zwróć uwagę na sugestie kol.matekogon i pozostałych: zrób porządek w PIN'ach, z przerwaniami itd.
Ja tylko dostrzegam błędy które bez względu na kod nie powinny się pojawiać, natomiast kol.matekogon bazując na sprawdzonym kodzie wyraźnie Ci mówi co jest nie tak.

Pozdr.



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: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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