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



Teraz jest 3 maja 2026, o 19:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 9 gru 2014, o 22:47 
Offline
Nowy

Dołączył(a): 09 gru 2014
Posty: 2
Pomógł: 0

Witam

Potrzebuję w projekcie na uczelnie wykorzystać podczerwień. Wydawało mi się, że najlepiej będzie skorzystać z gotowej biblioteki od Mirka. Niestety mam małe problemy..

Mój układ to Atmega328p, odbiornikiem IR na 36kHz z podłączonym wyjściem do PIND6 o raz moduł LED podpięty pod PORTB. Po kilku nieudanych próbach zdecydowałem się kupić pilot od Mirka RC5.

Do testów poprawności programu dodałem fragmenty kodów zmieniające stany na porcie B na przeciwny zarówno dla odebranego poprawnego kodu jak i wciśnięciu vol_up.

Żeby klarowniej przedstawić moje obecne położenie napiszę krok po kroku co robię.

1. Tworzę nowy czysty projekt w eclipsie. Ustawiam tam mój uC - Atmega328p oraz taktowanie 12MHz.
2. Dołączam bibliotekę Mirka "IR_Decode" oraz plik main.c.
3. Usuwam wszystkie wiersze kodu wykorzystywane do obsługi LCD.
4. Kompiluje po raz pierwszy..

Obrazki wstawiamy zgodnie z zaleceniami - Różowo-Zielony J.

5. Przy próbie otworzenia definicji "działającego rejestru" zauważam, że otwiera mi się iom16.h zamiast mojego iom328p.h.
Pierwsze pytanie: czemu program odwołuje się do złego procesora pomimo tego, że zdefiniowałem w właściwościach projektu odpowiedni uC?
6. Pomimo tego zamieniam TIMSK na _SFR_IO8(0x39) i to samo dla drugiego rejestru. Program się kompiluje, ale jak łatwo się domyślić nie działa bo program myśli ze to Atmega16.
7. Nie przychodziło mi nic lepszego do głowy więc wkleiłem zawartość iom328p.h do pliku iom16.h i zacząłem na nowo walczyć.
8. Program dalej się poprawnie kompiluję, ale również nie działa.
9. Po zmianie w ustawieniach procesora, a następnie powrocie do Atmegi328p, eclipse wreszcie zrozumiał do której biblioteki ma się odwoływać. Niestety nic to nie zmieniło - program nadal nie działa.

Możecie poradzić, wskazać błąd albo powiedzieć na co zwrócić uwagę?



Ostatnio edytowano 9 gru 2014, o 23:39 przez lebnh, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2014, o 23:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Zmień procesor w opcjach projektu (eclipse)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2014, o 23:10 
Offline
Nowy

Dołączył(a): 09 gru 2014
Posty: 2
Pomógł: 0

Ustawiłem (patrz punkt 1), teraz doczytałem się w jakimś starym poście na forum, że wtedy warto zmienić procesor na całkowicie inny i wrócić na swój - zadziałało, ale pomimo tego program nie reaguję. Pozmieniałem rejestry na odpowiednie dla mojego uC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2014, o 01:20 
Offline
Moderator
Avatar użytkownika

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

lebnh napisał(a):
. Pomimo tego zamieniam TIMSK na _SFR_IO8(0x39) i to samo dla drugiego rejestru. Program się kompiluje, ale jak łatwo się domyślić nie działa bo program myśli ze to Atmega16.
7. Nie przychodziło mi nic lepszego do głowy więc wkleiłem zawartość iom328p.h do pliku iom16.h i zacząłem na nowo walczyć.

To są niestety najgorsze pomysły i zawsze kończą się nieszczęściem takie próby obchodzenia problemu - zamiast jego rozwiązania

przede wszystkim zainstaluj eclipse zgodnie z tym poradnikiem:

http://mirekk36.blogspot.com/2014/11/av ... -luna.html

wtedy zaimportuj projekt z DVD (podkreślam IMPORT - tak jak w tym poradniku)

potem zmień nazwy rejestrów i bitów dla swojego procka - WSZYSTKO będzie i MUSI działać dobrze - a nie jakieś tam inkludowanie dziwnych plików albo dostęp do rejestrów przez _SFR_IO8(0x39) bo to już masakra

_________________
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: 24 gru 2015, o 22:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 mar 2014
Posty: 27
Lokalizacja: Olsztyn
Pomógł: 0

Witam
mam podobny problem.
Na Atmega32 program z RC5 działał idealnie jednak po przejściu na procesor Atmega328p jest problem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

kto mi powie jak to powinno wyglądać poprawnie dla mojego maluszka.

Odbiornik podłączyłem do pinu PB0 ( ICP1 ) jedyny problem to chyba mój angielski i poprawne odczytanie DataShed

ps. Wesołych świąt



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 gru 2015, o 23:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 mar 2014
Posty: 27
Lokalizacja: Olsztyn
Pomógł: 0

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


wigilia dzień cudów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2015, o 00:03 
Offline
Użytkownik
Avatar użytkownika

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

Witam
yozue 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.

... jedyny problem to chyba mój angielski i poprawne odczytanie DataShed

M328 nie posiada takiego rejestru:
Obrazek

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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 1 gość


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