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



Teraz jest 24 kwi 2024, o 18:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 2 wrz 2014, o 16:07 
Offline
Użytkownik

Dołączył(a): 15 sie 2014
Posty: 87
Pomógł: 0

Skorzystałem z gotowego kodu źródłowego z płyty z niebieskiej książki. Wyskakuje mi pewien błąd kompilacji. Ten kod jest napisany pod kątem chyba atmegi 32 ja korzystam z atmegi 88 i wprowadziłem pewne zmiany w pliku nagłówkowym odnośnie portów. O to kod w którym są błędy:

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


Błąd który wyskakuje to:

make all
Building file: ../d_led.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega88 -DF_CPU=8000000UL -MMD -MP -MF"d_led.d" -MT"d_led.d" -c -o "d_led.o" "../d_led.c"
../d_led.c: In function 'd_led_init':
../d_led.c:50: error: 'TCCR0' undeclared (first use in this function)
../d_led.c:50: error: (Each undeclared identifier is reported only once
../d_led.c:50: error: for each function it appears in.)
../d_led.c:52: error: 'OCR0' undeclared (first use in this function)
../d_led.c:53: error: 'TIMSK' undeclared (first use in this function)
../d_led.c:53: error: 'OCIE0' undeclared (first use in this function)
../d_led.c: At top level:
../d_led.c:58: warning: 'TIMER0_COMP_vect' appears to be a misspelled signal handler
make: *** [d_led.o] Error 1

**** Build Finished ****

A o to plik nagłówkowy:

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


I main:

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


Moje pytanie brzmi: o co tu chodzi? Błąd wyskakuje d_led.c.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 16:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Chodzi o to, że Atmega88 nie posiada rejestrów TCCR0, OCR0, TIMSK i OCIE0 tylko TCCR0A, OCR0A, TIMSK0 i OCIE0A. To samo z nazwą przerwania od porównania. W Atmedze32 jest TIMER0_COMP_vect a w Atmedze88 - TIMER0_COMPA_vect.

Po za tym po zamianie nazw rejestrów należało by jeszcze sprawdzić czy wszystkie bity konfiguracyjne leżą w tych samych rejestrach. Chodzi mi o bity CS02, CS01 i CS00. W Atmedze32 znajdują się w TCCR0 a w Atmedze88 w rejestrze TCCR0B, którego Atmega32 nie posiada.

Najlepiej to otworzyć obydwie noty na rozpisce rejestrów Timera0 i porównać gdzie jakie bity leżą i jakie maja nazwy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2014, o 19:26 
Offline
Użytkownik

Dołączył(a): 15 sie 2014
Posty: 87
Pomógł: 0

Dalej problem: sprawdziłem dwie noty aplikacyjne i wyskakuje mi komunikat odnośnie ustawienia timera0:

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


Korzystam z atmegi 88 a nie 32 o to bład:

avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega88 -DF_CPU=8000000UL -MMD -MP -MF"d_led.d" -MT"d_led.d" -c -o "d_led.o" "../d_led.c"
../d_led.c: In function 'd_led_init':
../d_led.c:53: error: 'OCIE0' undeclared (first use in this function)
../d_led.c:53: error: (Each undeclared identifier is reported only once
../d_led.c:53: error: for each function it appears in.)
make: *** [d_led.o] Error 1

**** Build Finished ****



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2014, o 19:32 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

moscow18-1990 napisał(a):
sprawdziłem dwie noty aplikacyjne

...ale nie do końca ;-) W megach (4|8|16|32)8 nie ma OCIE0, za to jest OCIE0A i OCIE0B

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2014, o 19:48 
Offline
Użytkownik

Dołączył(a): 15 sie 2014
Posty: 87
Pomógł: 0

Pojawia mi się jeszcze jakiś Symol could not be resolved odnośnie: TCCR0A, TCCR0A, OCR0A, TIMSK0, OCIE0A i jakiś "robak" czy "insekt" obok tych linijek kodu związanych z timerem. O co chodzi bo już sam nie wiem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2014, o 19:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

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


Sprawdź jeszcze raz w jakim rejestrze leżą bity CS02, CS01 i CS00.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 wrz 2014, o 20:06 
Offline
Użytkownik

Dołączył(a): 15 sie 2014
Posty: 87
Pomógł: 0

Dalej problem sprawdziłem tą notę aplikacyjną nie wyskakuje mi żaden błąd kompilacji ale pojawiają mi się "insekty" na pasku i komunikat: "Symbol could not be resolved" przy ustawieniu timera0:

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


Nie wiem może coś źle robię mógłby ktoś zweryfikować bo ja jestem początkujący i mimo że wspieram się niebieską książką i waszymi poprzednimi radami co szczerze mówiąc sam już nie wiem..........

------------------------ [ Dodano po: 37 minutach ]

Jakoś rozwiązałem ten problem a mimo wszystko jeśli mógłby ktoś mnie sprawdzić odnośnie ustawień timera0 pod kątem atmegi88 byłbym wdzięczny.......



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