FAQ | Points | Add... | Recent posts | Search | Register | Log in


[Atmega8][C]Timer1 mode 8 - brak efektów.


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [Atmega8][C]Timer1 mode 8 - brak efektów.
Author
Message
dan1987r
Poziom 8
Poziom 8


Joined: 27 Oct 2009
Posts: 29

Post#1 Post from the author of the topic 10 Feb 2010 13:48   

[Atmega8][C]Timer1 mode 8 - brak efektów.


Podczas programowania układu natrafiłem na problem dotyczący sterowaniem PWM przy pomowy wewnętrznego timera. Port wyjściowy timera steruje kluczem tranzystorowym do którego podłączony jest wentylator 12V.

Oto moja funkcja ustawiająca rejestry timera.
Code:

void pwm()
{
   //OC1A as output
   DDRB |= _BV(PB1);

   //PWM Phase, frequency correct mode   
   TCCR1A |= 0b00000000;
   TCCR1B |= 0b00010000;
   //frequency 50Hz, prescaler 1, top = 400
   //prescaler clk/1 - no prescaler
   TCCR1B |= 0b00000001;
   //top = 400
   ICR1 = 400;
   //max speed
   OCR1A = 400;
}

Na początku ustawiam port PB1 jako wyjście dla timera. Następnie ustawiam tryb pracy - PWM Phase, frequency correct mode wg tabeli ze strony :
http://www.mil.ufl.edu/imdl/handouts/AVR_PWM_Reg_Info_Summary.pdf.
Poźniej częstotliwość 50Hz (prescaler 1, top = 400, clk procesora 4MHz). Na końcu OCR1A = 400; jako "impuls ciągy". Przy takich ustawieniach wentylator nie działa.
Pytanie oczywiste - czy ktoś miał doczynienia z PWM na atmedze i wie gdzie popełniłem błąd.

Na wszelki wypadek schemat układu

http://obrazki.elektroda.net/97_1265110663.jpg

Jako źródła informacji korzystałem ze strony
http://mil.ufl.edu/~achamber/servoPWMfaq.html
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 10 Feb 2010 13:48   





Back to top
   
zumek
Poziom 23
Poziom 23


Joined: 08 Oct 2003
Posts: 3091
Location: Włocławek

Post#2 10 Feb 2010 14:32   

Re: [Atmega8][C]Timer1 mode 8 - brak efektów.


dan1987r wrote:

Code:

   TCCR1A |= 0b00000000;


A to co z twór :?:

Zapomniałeś skonfigurować wyjścia OC1A(PINB1)
Np.
Code:

   TCCR1A |= (1<<COM1A1);

Back to top
   
Google

Google Adsense


Post# 10 Feb 2010 14:32   





Back to top
   
mirekk36
Poziom 25
Poziom 25


Joined: 17 Jun 2006
Posts: 8153
Location: Szczecin

Post#3 10 Feb 2010 14:52   

Re: [Atmega8][C]Timer1 mode 8 - brak efektów.


na tej stronce na którą się powołujesz, masz wyraźnie w kodzie

Code:
TCCR1A |= 0x80;


co da binarnie:

Quote:
TCCR1A |= 0b10000000;


dzięki czemu ustawisz odpowiednio bity COM1Ax, jak wyżej pokazał kolega.
Back to top
   
Google

Google Adsense


Post# 10 Feb 2010 14:52   





Back to top
   
dan1987r
Poziom 8
Poziom 8


Joined: 27 Oct 2009
Posts: 29

Post#4 Post from the author of the topic 10 Feb 2010 17:20   

Re: [Atmega8][C]Timer1 mode 8 - brak efektów.


Tak, dziękuje. Doszedłem do tego dzisiaj rano. Wszystko funkcjonuje w miarę poprawnie. W wolnej chwili udostepnie kod dla pozostałych osób z tym samym problemem.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [Atmega8][C]Timer1 mode 8 - brak efektów.
Page 1 of 1
Similar topics
[ATMEGA8][BASCOM] Timer1 w trybie capture (2)
Atmega8 DCF77 i Timer1 - same problemy (1)
[Atmega8] Timer1, obsługa przerwań (5)
[ATMEGA8][avr gcc] Timer1 (2)
Timer1 jako CTC w ATMega8 (1)
ATmega8, timer1 i czestotliwosc zegara. (6)
[atmega8][C] Timer1 czas. (6)
Timer0 -> Timer1 (ATmega8) (15)
[atmega8][asm] timer1 sterowanie OC1A (2)
[Atmega8][BASCOM][TIMER1]Prosba o sprawdzenie. (7)

Page generation time: 0.087 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed