[AVR]Co z tym PWM?

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Skrzydlaty
Użytkownik
Posty: 126
Rejestracja: 23 wrz 2007, 21:08
Lokalizacja: Krak

[AVR]Co z tym PWM?

Post autor: Skrzydlaty » 31 paź 2007, 2:34

Spędziłem cały wieczór nad programemw Bascom'ie i utknołem w martwym punkcie - na zadnej końcówce uC nie pojawiają sie impulsy PWM.

Kod: Zaznacz cały

$regfile = "m8535.dat"
$crystal = 16000000
Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , Db7 = Pinc.5 , E = Pinc.1 , Rs = Pinc.0
Config Lcd = 16 * 2
Config Porta = Input
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Pind.7 = Output
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down

Enable Interrupts
Start Adc
Dim _in As Word
Dim _out As Word
Dim _out_trans As Single
Dim A As Single
Dim B As Single
A = 0.004853515625
Cls
Pwm1a = 850

Do
_in = Getadc(0)
B = _in * 0.004853515625
_out = Pwm1a
_out_trans = _out * A
Cls
Lcd B ; "V in "
Lowerline
Lcd _out_trans ; "V out"
Toggle Portd.7
Waitms 50
Loop
Jest to procesor Mega8535, za wyjście PWM robi prawdopodobnie końcówka Pd.5 na której to własnie nic sie nie dzieje!!1 :cry: Co jest grane? Pomocyy....

Awatar użytkownika
Gutek
Użytkownik
Posty: 323
Rejestracja: 27 sty 2006, 13:05
Lokalizacja: Wadowice
Kontakt:

Post autor: Gutek » 31 paź 2007, 14:37

Skonfiguruj Cały PORTD jako output.
W asemblerze z nota katalogową pewno bys do tego doszedł poprzez zmianę znacznika jakiegos rejestru SFR.

yakuza
-
Posty: 38
Rejestracja: 10 sty 2006, 12:59
Kontakt:

Post autor: yakuza » 31 paź 2007, 16:13

Jeszcze musisz poleceniem Start Timer1 włączyć PWM.

Pozdrawiam Yakuza

ZbeeGin

Post autor: ZbeeGin » 31 paź 2007, 21:35

yakuza pisze:Jeszcze musisz poleceniem Start Timer1 włączyć PWM.
To nie w tym rzecz. Proszę spojrzeć na polecenie CONFIG TIMER. Ewidentnie brakuje jednego ważnego elementu: PRESCALE = <wartość> Bez tego TIMER nie będzie zliczał!

Kod: Zaznacz cały

Config Timer1 = Pwm , Pwm = 10 , Prescale = 1, Compare A Pwm = Clear Down

Skrzydlaty
Użytkownik
Posty: 126
Rejestracja: 23 wrz 2007, 21:08
Lokalizacja: Krak

Post autor: Skrzydlaty » 01 lis 2007, 20:11

O właśnie! o tym zapomniałem! Ja tylko będe miał pod ręką hardware to sprawdze.

ODPOWIEDZ