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



Teraz jest 9 kwi 2026, o 12:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 10 lip 2015, o 14:09 
Offline
Nowy

Dołączył(a): 22 cze 2015
Posty: 21
Pomógł: 0

Witam,

Mam następujący problem. Otóż próbuję zrealizować 3-kanałowy programowy PWM z wykorzystaniem TIMER1 (ćwiczenie wykonuję oczywiście w oparciu o zagadnienia zawarte w BB). Ustaliłem nazwę wektora TIMER1, wartości rejestrów konfiguracyjnych etc. ale podczas kompilowania pojawia się błąd o treści:
"error: static declaration of '__vector_5' follows non-static declaration" oraz czerwony znak przy procedurze obsługi przerwania ISR. Co może być tego przyczyną? Z góry dziękuję za wszelką pomoc.

Pozdrawiam!

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: 10 lip 2015, o 14:25 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Czy mnie oczy nie mylą... obsługa przerwania jest wewnątrz funkcji main?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 15:43 
Offline
Nowy

Dołączył(a): 22 cze 2015
Posty: 21
Pomógł: 0

Racja, już poprawione. Dziękuję.
Nie ma błędu podczas kompilacji, ale po wgraniu wsadu na deklarowanych pinach nic się nie dzieje - dioda wygaszona. Procesor taktowany wewnętrznym oscylatorem 8 MHz. Gdzie robię błąd?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2015, o 15:51 
Offline
Moderator
Avatar użytkownika

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

sternick napisał(a):
                //inicjalizacja licznika wartoscia 56, zeby zliczal wciaz 200 tykniec
                TCNT1 = 56;


panie panie, pomyśl .... ustawiasz w przerwaniu TCNT1 na 56, i jak myślisz kiedy się wykona kolejne przerwanie ? DOOPIERO wtedy gdy TCNT1 się przepełni czyli dopiero gdy osiągnie wartość 65535 - jak myślisz ile to potrwa ?

Masz Bluebooka ? zajrzyj tam o co chodzi w korzystaniu z trybu NORMAL

jak nie masz to

TCNT1 = 65536-56;

wtedy będziesz miał lepiej

_________________
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: 10 lip 2015, o 16:09 
Offline
Nowy

Dołączył(a): 22 cze 2015
Posty: 21
Pomógł: 0

Mirku, dziękuję za odpowiedź. Mój błąd i niedopatrzenie. Rozumiem działanie trybu NORMAL, w skrócie: liczy od zadanej wartości wzwyż do momentu przepełnienia, a więc uzyskania wartości granicznej - w tym przypadku 65535 (16-bitowy TIMER). Wszystko działa, raz jeszcze dziękuję!



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO