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



Teraz jest 28 gru 2024, o 17:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
 Tytuł: Problem z RC5
PostNapisane: 13 lip 2014, o 19:24 
Offline
Nowy

Dołączył(a): 30 maja 2014
Posty: 7
Pomógł: 0

Cześć,
znów się zwracam do Was o pomoc, także pewnie dla Was błahym problemem. Otóż męczę się z nadawaniem sygnałów w standardzie RC5.

Pierwszym problemem jest wysyłanie. Zrobiłem z innego uC przyrząd do debugowania i okazało się, że jakaś fale nośną generuje, ale nic nie przesyła.
Drugą kwestią jest bardzo krótki zasięg. Dioda IR z nadajnikiem muszą być do siebie przystawione.

Pracuję na ATmega32A.

Schemat:
Obrazek

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.


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


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


Proszę "nie bić" za popełnione przeze mnie błędy, gdyż jestem początkujący.

Dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lip 2014, o 20:20 
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

Schemat jest dobry i zakładam, że pracujesz na wewnętrznym taktowaniu 8MHz. Kod jest błędny w wielu miejscach i w zasadzie to nawet nie powinien dać się skompilować po w ATMEGA32A nie ma bitu OCIE2A ani wektora przerwań TIMER2_COMPA_vect.
1. Patrząc na schemat powinieneś użyć timera 1, który będzie generował nośną na pinie z funkcją alternatywną OC1B.
2. Dodatkowa konfiguracja wyjścia PD4 jest błędem, bo to timer 1 przejmuje kontrolę nad tym wyprowadzeniem.
3. Włącznie przerwań jest tutaj niepotrzebne (usuń z kodu sei() i ISR)
4. Funkcja wysyłająca ramkę RC5 powinna być napisana w sposób, że jeśli bit w ramce to 1 to kolejene kroki są nastęujące: _delay_us(889) potem włączenie RC5_TRANSMITTER_PORT_ON znowu czekanie i wyłączenie i tak dla wszystkich bitów z tym, że dla 0 najpierw włącza się nośną, a potem czeka

_________________
Dragonus Cracovus: Biomagia



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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