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



Teraz jest 25 cze 2026, o 16:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 
Autor Wiadomość
PostNapisane: 8 sie 2014, o 11:33 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Witam, tak jak z tytułu wynika, mam problem z ustawieniem timera. Procek - atmega644p. Ustawiłem go tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Naprawdę, nie mam pojęcia dlaczego nie działa. Wie ktoś może gdzie popełniłem błąd?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 11:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Funkcja obsługi przerwania jest?
Odblokowana jest globalna obsługa przerwań "sei()"?
Na jakiej podstawie twierdzisz, że nie działa - coś jest związane z tym przerwaniem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 11:49 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

sei jest, obsługa też jest, chodzi o to, że program się nie skompiluje, ponieważ widzi błędy w tych czterech wersach o ustawianiu timera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 12:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Może procesor jest źle ustawiony w projekcie.
Pokaż komunika z konsoli i sekcję #include



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 12:18 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Konsola
**** Build of configuration Release for project multipleksowanie_led ****

make all
Building target: multipleksowanie_led.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,multipleksowanie_led.map -mmcu=atmega644p -o "multipleksowanie_led.elf" ./d_led.o ./main.o
./main.o:(.progmem.data+0x0): multiple definition of `cyfry'
./d_led.o:(.progmem.data+0x0): first defined here
make: *** [multipleksowanie_led.elf] Error 1

**** Build Finished ****

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


d_led.h bez includów, bo plik z definicjami dla preprocka

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 12:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

No ale tu nie widać problemu z timerem tylko ze zmienną / tablicą cyfry.

./main.o:(.progmem.data+0x0): multiple definition of `cyfry'
./d_led.o:(.progmem.data+0x0): first defined here

Zapewne definicja i deklaracją się różnią.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 12:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Wg. mnie chodzi mu o podwójne zdefiniowanie bo pisze że "multiple" i wskazuje gdzie jest pierwszy raz zdefiniowana.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 13:13 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Problemu ze zmiennymi już nie ma, ale nadal są błędy z timerami, pisze, że nie mogą być rozwiązane.

Pisze, że TCCR0A, could not be resolved, TCCR0B(tam powinno być TCCR0B drugi wers zamiast TCCR0A, probowalem pozmieniac i wkleilem tamten), could not be resolved, itd.



Ostatnio edytowano 8 sie 2014, o 14:48 przez eDaro, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 13:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Na pewno masz w projekcie dobry procesor ustawiony? Bo domyślnie jest chyba AT16 a on ma dla Timera0 tylko rejestr TCCR0
644 i 1284 to zupełnie inna linia procesorów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 14:34 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Dobrze mam ustawione, atmege644p, myśle że to teraz tylko wina zapisu, bo nic wiecej nie moze przyjsc mi do glowy i przy bulidzie, nie pokazuje innych błędów.

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


Więc: 8-bit timer/counter0 with pwm

TCCR0A |= (1<< WGM01); bo tryb CTC wystepuje u mnie tylko w TCCR0A
TCCR0B |= (1<<CS02)|(1<<CS00); bo preskaler, jest tylko w TCCR0B, w TCCR0B, nie ma CTC..
OCR0A = 39; tego nie jestem pewny, ale wstawiam OCR0, OCR0B i nic nie daje
TIMSK0 |= (1<<OCIE0A); myśle, że dobrze

Więc jeśli te ustawienia są dobre, to nie mam bladego pojęcia jak rozwiązać ten problem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 14:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

BOSZE :shock: :o !!!! e daro czemu wkliłes cały kod libsa Mirka!!! kasuj to!!!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 14:44 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Co jest nie tak z tym? chciałem, żeby mi sie wyświetlacz odpalił a na razie z inna drogą pisania programu nie kombinowałem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 15:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

No dobrze, ale czy w ogóle kompilacja przechodzi?

Powinna się zakończyć mniej więcej takim czymś

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 15:07 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Przechodzi, ale małe, wredne czerwone insekty nadal sie ukazują.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 17:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

No to czerwone insekty to są błędy. Jak są błędy to kompilacja nie przejdzie. Jak są żółte to przejdzie bo to są tylko warningi.
Ale przy błędach nie utworzy się plik hex w katalogu release i nie będzie czego wgrać do MCU.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 18:34 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Dziwna sytuacja, bo mimo tych szkodników, program się skompilował i hex się utworzył ;O



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 18:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Może kompilujesz zupełnie inny projekt, a inny masz otwarty...?

Plik *.hex może być pozostałością po poprzednich poprawnych kompilacjach.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 18:41 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Sprawdziłem to i nie hehe, to jest tak dziwne, że aż śmieszne

------------------------ [ Dodano po: 3 minutach ]

Gdy wgrywam wsad do procka takie info otrzymałem - avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.


avrdude done. Thank you.

A na płytce testowej czerwona dioda TXD była zapalona przez chwile, a później zgasła



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 19:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

jak jest rc=-1 to znaczy, że nic sie nie wgrało. Złe podłaczenie procesora do programatora



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 21:15 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Wcześniej nie miałem tego problemu, wgrywałem kilka programów i wszystko działało. Odłączyłem teraz, sprawdziłem, czy przewody nie łączą, jednak ŁĄCZĄ.. z płytką nic nie robiłem, nie rzucałem ją.. Czy procek mógłbymi się zablokować, przez wgranie tego hexa, który nie wiadomo z jakich przyczyn pojawił mi się(tu może był błąd eclipse, nie kompilowało się, nie było hexa, wyłączyłem kompa, znowu odpaliłem skompilowałem i pojawił się) ? Czy jakby mi się procek zablokował to byłyby te błędy, że jest źle podłączone? Dzisiejszy dzień można spisać na straty, niedość że dużo problemów nie rozwiązanych to prawie nic się dzisiaj nie nauczyłem ;x



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 21:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Od hexa się na pewno nie zablokował. Może coś jest nie tak z zasilaniem, może z programatorem...
Może z AVRdude....


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sie 2014, o 21:29 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Ok, sq8dsr na razie nie udało mi się rozwiązać problemu, ale za to, że głównie Ty się udzielasz, pomagasz dostajesz pochwałe, jutro znowu porobię przy tym, dziś już nie mam siły za bardzo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2014, o 15:48 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Witam ponownie. Kolejny raz mam problemy z timerem... miałem go przy multipleksowaniu, wyswietlaczu lcd i teraz przy PWM'ie i nie rozwiązałem żadnego z nich. Cały czas mam czerwone bugi obok rejestrów timera. Mam at644p. Nie mam bladego pojęcia, dlaczego nie działają mi te rejestry.
Np. przy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czerwone bugi, przy innej linijce to samo... Wiecie może o co chodzi? wklejam żywcem kod multipleksowania Mirka, ustawiam atmega32 zegar 8MHz i hula, koledze dałem do skompilowania kod ze zmianą timera(bo at644p) mam ustawioną atmege 644p i zegar 8MHz, i jemu się kompiluje bez błędów w Studiu(program z PWM), a mi się bugi pokazują(też program z PWM - u mnie - Eclipse).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2014, o 17:33 
Offline
Użytkownik

Dołączył(a): 26 lut 2014
Posty: 227
Lokalizacja: LDZ
Pomógł: 22

Masz skopane coś w projekcie (eclipse czasem się zakręci). Jak program się kompiluje to znaczy, że wystarczy prawy przycisk myszy na projekcie i Refresh (możesz nacisnąć F5). Ew. jeśli to nie pomoże to prawy na projekcie -> Index -> Freschen All Files. Możesz jeszcze zrobić Clean Project. Jeśli to nie pomoże to możesz zrobić jeszcze tak: prawy na projekcie -> Properties -> C/C++ Build -> Discovery Options -> Clear Discovery Entries Now (kliknij Clear). Zamknij i skompiluj ponownie projekt. A jak nie pomaga to masz skopane ścieżki do toolchaina.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2014, o 10:52 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lip 2014
Posty: 24
Pomógł: 0

Okej, działa ;)) Myślę, że była to wina ścieżek do toolchaina, jednak na spokojnie odinstalowałem całość i zainstalowałem eclipsa, itd. zgodnie z poradnikiem Mirka. Dlaczego od razu nie odinstalowałem i zainstalowałem toolchaina? Bo nie wiedziałem jak to się robi ;D Na poradniku pokazane było wszystko co i jak więc poradziłem sobie.
PS przy odinstalowywaniu zauważyłem, że wszystko miałem dobrze, ale dla świętego spokoju zainstalowałem ponownie. Najprawdopodobniej była to wina toolchaina, bo również Mirek mówił, że jak będą problemy podobne do mojego to na dzień dobry przydałoby się usunąć i dodać te ścieżki. I dzięx za post ;)



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

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