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



Teraz jest 23 lut 2026, o 00:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 15 wrz 2015, o 17:55 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 11 lut 2015
Posty: 11
Pomógł: 0

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

Używam ATMega328P. Chciałbym uzyskać częstotliwość 100Hz na pinie PB1(OC1A), ale w wyniku wykonania tego kodu, niezależnie od wartości przypisanej do OCR1A ciągle mam jakieś 5Hz. Mam diodę podpiętą katodą do uC. Czy w tym kodzie popełniłem jakiś błąd?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 18:33 
Offline
Użytkownik

Dołączył(a): 27 lut 2013
Posty: 230
Pomógł: 4

Hej ;)

Spróbuj najpierw sam rozwiązać swój problem... więcej się wtedy nauczysz
Posiadasz może program mkAVRCalculator? jak nie to pobierz go jest przecież za darmo ;)
Masz tam w zakładce narzędzia taki mały program "AVR Timer Kalkulator"
Ustawiasz tam sobie taktowanie zegara pożądaną częstotliwość i już wiesz jak prescaler musisz ustawić dla jakiego timerera itd...

Masz może niebieską książkę? tam w dziale ćwiczenia jest kilka podanych przykładów jak ustawić timer aby uzyskać daną częstotliwość. ;)

Powodzenia ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 19:05 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 11 lut 2015
Posty: 11
Pomógł: 0

Mam książkę i licencję na mkAVRCalkulator a w mikrokontrolerach siedzę od roku ;) Właśnie nadal nie mogę dopatrzyć co tu jest nie tak, a coś jest na pewno bo niezależnie od wartości przypisanej do OCR1A nie zmienia się częstotliwości migania diody. Notę dokładnie przejrzałem 3 razy i zdaję się że wszystko dobrze ustawiłem. Właśnie dlatego proszę o wychwycenie błędu bo sam nie jestem w stanie :(



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

Dołączył(a): 27 lut 2013
Posty: 230
Pomógł: 4

hmmm...

No dobra to jaką częstotliwość ma twój procek bo tego nie podajesz?

Z ustawień które pokazujesz i z efektów które chcesz uzyskać musiał byś mieć zegar 4 000 000 Hz

Taki zegar masz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 19:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

"5. TCCR1A |= (1<<WGM12);" - Błąd. Patrz -ds AT328 - brak takiego bitu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 19:38 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Wydaje mi sie że powinieneś jeszcze ustawić bit FOC1A

_________________
Przewodnik|Sterownik akwariowy



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

Dołączył(a): 11 lut 2015
Posty: 11
Pomógł: 0

Zegar 8MHz ale tutaj to akurat nieważne.
Cytuj:
"5. TCCR1A |= (1<<WGM12);" - Błąd. Patrz -ds AT328 - brak takiego bitu.

No ale jak to? W mojej dokumentacji pobranej stąd http://www.atmel.com/devices/atmega328.aspx
mam taką tabelkę:
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 19:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Ale WGM12 musisz ustawić w TCCR1B - Patrz DS.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 20:14 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

A ja się zapytam dlaczego wybierasz tryb CTC a nie Fast PWM?

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 20:17 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 11 lut 2015
Posty: 11
Pomógł: 0

Wirnick napisał(a):
Ale WGM12 musisz ustawić w TCCR1B - Patrz DS.

No tak, sugerowałem się umieszczeniem tej tabelki w podrozdziale "TCCR1A" a nie wczytałem się dokładnie. Dzięki, to rozwiązuje mój problem!
Obiecuję że drugi raz przeczytam każdą literkę zanim zadam podobne pytanie :lol:

matekogon napisał(a):
Wydaje mi sie że powinieneś jeszcze ustawić bit FOC1A

Co mi to dokładnie da? Bo zrozumiałem tylko że wymusza zmianę stanów na OC1A. Ale przecież tam stany tak czy inaczej się zmieniają.

Dlaczego nie FastPWM? Bo używając go do rozwiązania tego problemu nie uzyskałem oczekiwanego rezulatatu(zapewne z tego samego powodu który został przed chwilą podany), więc postanowiłem zrobić to trochę inaczej ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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