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



Teraz jest 5 sty 2025, o 11:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 22 mar 2013, o 16:06 
Offline
Użytkownik

Dołączył(a): 22 mar 2013
Posty: 32
Pomógł: 0

Witam.
Męczę się z tym i nie mogę sobie poradzić. Chciałem migać diodą LED co 1 s, ale za pomocą przerwania CTC. Oto co napisałem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Kod nie działa. Chciałem się spytać co jest nie tak w tym kodzie. Dodam tylko, że jak na razie zakup książki jest dla mnie za dużym wydatkiem, a wszystkie informację biorę z internetu. Procek to Atmega8 taktowana wewnętrznym oscylatorem 1MHz.
Pozdrawiam.


Kod wstawiamy przy pomocy [syntax=c] - Zielony J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 16:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 lip 2012
Posty: 157
Pomógł: 8

WGM21 a nie WGM12, TO SAMO: TCCR2 |= (1<<CS10) | (1<<CS12); i napisz jeszcze jakim zegarem to masz taktowane


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 16:19 
Offline
Użytkownik

Dołączył(a): 22 mar 2013
Posty: 32
Pomógł: 0

Czyli to:
Kod:
TCCR2 |= (1<<CS10) | (1<<CS12);

Mam zmienić na to:
Kod:
 TCCR2 |= (1<<CS20) | (1<<CS22);
?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 16:40 
Offline
Użytkownik

Dołączył(a): 05 lut 2013
Posty: 302
Pomógł: 19

To oprocz przejrzystosci niewiele zmieni, ja bym bardziej sie skupil na:
TIMSK |= (1<<OCIE1A) | (1<<OCIE1B);
i poczytal o rejestrze TIMSK w dokumentacji.
Dla podpowiedzi powiem ze OCIE1A i OCIE1B sa od timera1.

------------------------ [ Dodano po: 10 minutach ]

Spojrzalem jeszcze raz, zastanow sie jeszcze nad komenda:
ISR(TIMER0_COMP_vect) {


Podsumowujac, inicjujesz timer 2 bitami z timera1 (to jeszcze nie jest az taki blad), nastepnie ustawiasz przerwania timera1, a kod obslugi przerwan piszesz dla timera0.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 17:53 
Offline
Użytkownik

Dołączył(a): 22 mar 2013
Posty: 32
Pomógł: 0

Ok.
Pooglądałem notę, kilka zmian i wyszło coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Działa. Dziękuję i pozdrawiam.



Co ja pisałem w pierwszym poście?? Zielony J.
EDIT: Przepraszam. Poprawię.
Mam jeszcze jedno pytanie, czy w Timer0 istnieje możliwość ustawienia trybu CTC? Bo w nocie nie widzę za bardzo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 20:33 
Offline
Użytkownik

Dołączył(a): 22 mar 2013
Posty: 32
Pomógł: 0

Dzięki. Takiej odpowiedzi oczekiwałem :) Jeżeli chodzi o Timer2, to patrz wyżej :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 21:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Jakim kwarcem napędzasz procesor?
1sek to dosyć długi okres czasu..


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 22:27 
Offline
Użytkownik

Dołączył(a): 05 lut 2013
Posty: 302
Pomógł: 19

faktem autentycznym :? jest, ze zalozyciel watku napedza wewnetrzym oscylatorem 1Mhz


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 22:27 
Offline
Użytkownik

Dołączył(a): 22 mar 2013
Posty: 32
Pomógł: 0

Wewnętrznym oscylatorem 1MHz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2015, o 22:23 
Offline
Nowy

Dołączył(a): 25 cze 2014
Posty: 9
Pomógł: 0

Dołączę się do tematu jako że nie warto zakładać nowego do takiego samego problemu.

Tak więc: Jako że multipleksowanie wyświetlaczy 7-segmentowych jakoś mi się nie udaje to postanowiłem cofnąć się do prostego migania diodą LED za pomocą przerwań CTC w odstępie 1 sec (przybliżony czas)

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


BB już przekopany wraz z forum i blogiem ale błędu nie widzę. Z góry dziękuję za pomoc :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2015, o 23:04 
Offline
Nowy

Dołączył(a): 25 cze 2014
Posty: 9
Pomógł: 0

Zasadę działania tego typu przerwania zrozumiałem z BB i poradników. Błąd głupszy niż mogłem sobie wyobrazić:

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


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


W każdym bądź razie dziękuje :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 mar 2015, o 23:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 lut 2014
Posty: 96
Lokalizacja: Łódź
Pomógł: 6

A ja z kolei polecam zapoznanie się z trybem OVF Timera0, bo czasem do prostych zastosowań warto takiego niezaopatrzonego w CTC tykacza zaprzęgnąć do czarnej roboty, a Timery1 i 2 trzymać na czarną godzinę ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 mar 2015, o 12:25 
Offline
Nowy

Dołączył(a): 25 cze 2014
Posty: 9
Pomógł: 0

Na początek zgodnie z instrukcjami Mirka w BB postanowiłem zapoznać się z trybem CTC, jak znajdę znów czas to zajmę się innymi trybami :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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