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



Teraz jest 16 lut 2025, o 05:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 10 lut 2013, o 11:19 
Offline
Nowy

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

Witam...
Przerabiam książkę pana Mirosława i doszedłem do Sterowania PWM chciałem zrobić przykład z ściemnianiem i rozjaśnianiem diody LED.

Mikrokontroler: Atmega328P-PU
Środowisko: Eclipse Indigo (z AVR Toolchain)
Ustawiony wewnętrzny oscylator na 8 Mhz (wyłączona opcja CKDIV8)

Mój mikrokontroler nico różni się od tego którego używał pan Mirosław gdy pisał książkę ale postaram się opisać co gdzie szukałem.

Na początek chciałem napisać prosty program który zaświeci diodę z 25% mocą lub 50% mocy aby sprawdzić czy w ogóle to działa. Ale dioda cały czas się zapala na 100%.

Program:
Kod:
#include <avr/io.h>
#include <util/delay.h>


int main ( void ) {
   DDRD |= (1<<PD6);
   TCCR0A |= (1<<WGM01) | (1<<WGM00); // Fast PWM
   TCCR0A |= (1<<COM0A1) | (1<<COM0A0); // Fast PWM Mode
   TCCR0A |= (1<<CS00); // Presklarer = 1
   OCR0A=120; // ustawienie diody na ok 50%
}


Diodę podpiąłem pod PD6 z oznaczeniem w nocie PCINT22/OC0A/AINO0
Aby włączyć Fast PWM zajrzałem do noty:
Obrazek

Następnym krokiem było odpowiednie ustawienie "Compare Output Mode, Fast PWM Mode" i tutaj ustawienia się nieco różnią od tych podanych w książce:
Obrazek
W książce było "Clear OC0 at TOP" a u mnie jest BOTTOM.

Ustawienie presklarer-a:
Obrazek

Może czegoś nie doczytałem lub coś źle robię. Jeżeli napisałem jakieś głupoty to z góry przepraszam ale dopiero zaczynam przygodę z AVR i jestem jeszcze zielony jak trawa na wiosnę.

Pozdrawiam Krzysztof Andrzejczak



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 11:36 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

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

bit CS00 jest w rejestrze TCCR0B. Trzeba na to uważać ponieważ nie ma żadnego ostrzeżenia o błędzie w takim przypadku.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 12:10 
Offline
Nowy

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

Działa. Dziękuje za pomoc.



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO