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



Teraz jest 19 kwi 2024, o 12:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 24 lis 2011, o 21:53 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

Witam
Mam takie pytanie czy mógłby mi ktoś powiedzieć po co są te przerwania i co się w nich dzieje (. Np w przypadku trybu CTC zliczania porównuje on do liczby uzyskanej z dzielenia preskalera (w naszym przypadku 39). I chodzi mi o to co się stanie, gdy będzie 39 zliczenie równe 39, nastąpi przerwanie ? i co dalej się będzie działo ?
Z góry dziękuje :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2011, o 22:54 
Offline
Moderator
Avatar użytkownika

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

Każdy może liczyć na odpowiedź - tylko muszę zdążyć ;)

Rozumiem, że koledze chodzi w ogóle o zasadę działania przerwania a nie tylko tego konkretnego.

Otóż gdy w tym przypadku licznik sprzętowy zliczy do 39, i zrówna się z wartością w rejestrze porównania to procesor ustawi flagę przerwania przede wszystkim. A jeśli będzie odblokowane to konkretne przerwanie oraz przerwania globalne to wtedy procesor zechce wykonać natychmiast procedurę obsługi tego przerwania, którą oczywiście MUSIMY wcześniej przygotować:

Kod:
ISR( wektor_przerwania ) {

}


Zatem jeśli np program w pętli głównej będzie sobie np migał jakąś tam diodą, i w trakcie nastąpi przerwanie, to natychmiast procesor wykona tę procedurę obsługi przerwania. MUSI ona trwać jak najkrócej. A gdy się skończy , to sterowanie powróci (w uproszczeniu) do następnej linii programu głównego, w którym został przerwany i dioda będzie dalej sobie migać ;)

_________________
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 lis 2011, o 23:35 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

aaaha. chyba juz rozumiem o co chodzi. tak jak by te przerwania "sa czyms osobnym i dzialaja tak w tle" czyli jak jest np ta dioda i sobie miga to jak w tle nastapia porownanie 39 z zliczaniem to wtedy jest STOP i nastepuje wykonanie tego co jest w funkcji ISR po skonczeniu tego jest dlasza kontynuacja przerwanego dzialania ? ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2011, o 23:44 
Offline
Moderator
Avatar użytkownika

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

Dokładnie tak. Przerwania działają w tle o ile dobrze napiszemy ich procedury. Jeśli zamieścimy tam jakieś długotrwałe funkcje jak np _delay, czy chociażby obsługę wyświetlacza LCD co niektórzy próbują robić, to już sam kojarzysz jaką masakrę tym samym robimy w stosunku do biednego programu głównego, który nagle zostaje spowolniony na maxa.

Przerwanie - przerywa program, i dokładnie wraca po wykonaniu w to samo miejsce tylko do kolejnej linii, zatem następuje kontynuacja przerwanego programu.

_________________
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: 25 lis 2011, o 15:43 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

dlaczego w datasheet Atmega8 nie ma trybow Timera0 (chyba ze jakos przeoczam) ustawienia preskalera widze ale trybow pracy nie :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lis 2011, o 16:10 
Offline
Moderator
Avatar użytkownika

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

Michal_PB1 napisał(a):
dlaczego w datasheet Atmega8 nie ma trybow Timera0 (chyba ze jakos przeoczam) ustawienia preskalera widze ale trybow pracy nie :?:


Dlaczego?

Pytanie powinien kolega postawić inaczej ;)

Dlaczego kupiłem i kupuję nadal tego starego szrota ATmega8 zamiast ATmega88 albo ATmega168 ?

A porada jest taka, jakby kolega kupił sobie ATmega88 czyli nowszą wersję m8 to zobaczyłby kolega tryby pracy Timera0 ;) a tak ? nigdy ich kolega nie zobaczy w m8 .... teraz już wiadomo dlaczego? i dlaczego nie warto kupować m8 tylko jak już m88 albo lepiej m168 ???

A to że m88 ma różne tryby pracy dla Timera0 to jeszcze nic, ma wiele innych rzeczy, które na co dzień każdemu programiście są potrzebne w porównaniu do m8. Choćby dodatkowe PWM'y sprzętowe, choćby lepiej działający ADC, choćby niższe napięcie odniesienia dla ADC i tak mógłbym jeszcze troszkę wymieniać ;)

_________________
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: 25 lis 2011, o 16:13 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

no niestety takie kupilem ;/ ale teraz juz wiem ze byl to blad ;) to jak moge wlaczyc tryb CTC w atmega8 ? tylko poprzez Timer 16 bitowy (bo w tym widze ustawienia dla trybów) ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lis 2011, o 18:56 
Offline
Moderator
Avatar użytkownika

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

Nie, no spokojnie tragedii nie ma ;) w końcu i na m8 da się popracować , a jeśli chodzi o tryb CTC na timerze 8-bitowym, to proszę sobie spojrzeć w nocie PDF jeszcze do Timera2 ;)

_________________
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: 25 lis 2011, o 20:01 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

ok chyba ustawienia trybu mam ok. tylko teraz zastanawiam sie jak za pomoca CTC uzyskac mala czestotliwosc widoczna dla oka migania np LED (bo jezeli zliczenie jest zgodne z OCR to zapala LED - chyba moze tak byc ?) .to co mi wpada na mysl to to zeby zmienic czestotliwosc taktowania atmegi z 8MHz (przy takiej moge uzyskac ok 35Hz i to jest za duzo) na 1MHz i tu by bylo dobrze albo uzycie 16 bitowego Timer'a, ale czy jest jakis sposob zeby nie zmieniac taktowania ? tylko co mi przychodzi na mysl :D
sorry za upierdliwosc ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lis 2011, o 21:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Tu bym bardzo chciał wiedzieć Miachale co masz na mysli jaką czestotliwość chcesz uzyskać ??

żeby nie zmieniać taktowania ustaw preskaler na żadaną wartość , a wynik z preskalera podziel dodatkowo w procedurce i może to rozwiaze twój problem ?? ale własnie jak napisaleś -- tylko co masz na mysli??

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


może to cie naprowadzi w podobny sposób mozesz uzyskać prawie każdą czestotliwość

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lis 2011, o 21:53 
Offline
Moderator
Avatar użytkownika

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

Dokładnie jak pisze kolega SunRiver. Twój cel można osiągnąć na wiele sposobów i to bez zmiany taktowania procka (po co?), no tylko trza byłoby bardziej sprecyzować właśnie ten cel, wtedy uda się szybciej pomóc.

_________________
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: 25 lis 2011, o 23:49 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

chyba mi sie zablokowal mikrokontroler bo nie moge go zaprogramowac



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2011, o 10:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

To znaczy że co się dzieje ... ??
jakie masz komunikaty z avrdude

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2011, o 10:54 
Offline
Moderator
Avatar użytkownika

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

Michal_PB1 napisał(a):
chyba mi sie zablokowal mikrokontroler bo nie moge go zaprogramowac


Albo jednak bawiłeś się fusebitami i przestawiłeś taktowanie na 1MHz, za to później zapomniałeś o ptaszku "slowsck" ;) (tak mi się tylko wydaje) w programie MkAvrCalculator.

_________________
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: 26 lis 2011, o 16:40 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

nie nie bawilem sie fusebitami. Po prostu wgralo i pozniej juz sie nei chcialo wgrac i nie wiem czemu kupilem nowa i sie programuje :D bede musial zrobic se jakis ten programtator do odblokowania ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2011, o 17:09 
Offline
Moderator
Avatar użytkownika

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

A przypomnij mi czy ty masz przypadkiem nasz zestaw uruchomieniowy ATB ? Bo jeśli tak to bez robienia sobie propgramatora do odblokowywania też sobie poradzisz ;) .... w naszym zestawie ciężko zablokować procka za pomocą fusków. No i też można odblokować w pewnym zakresie.

_________________
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: 26 lis 2011, o 17:19 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

nie nie mam zestawu uruchomieniowego poki co ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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