PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega128, Timer2 als PWM mag nicht



Felix H.
15.07.2010, 12:26
Hi,

ich habe einen Atmega128 und wollte den Timer2 PWM für die Displaybeleuchtung nehmen. Mein code:


$regfile = "m128def.dat"
$crystal = 8000000
$baud = 9600

$hwstack = 100
$swstack = 130
$framesize = 100

$lib "glcd.lbx"


Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 3 , Cd = 0 , Wr = 1 , Rd = 5 , Reset = 2 , Fs = 6 , Mode = 8

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config 1wire = Portc.7

Config Clock = Soft , Gosub = Sectic

Config Timer2 = Pwm , Compare Pwm = Clear Down , Prescale = 256
Config Timer3 = Pwm , Compare A Pwm = Clear Down , Prescale = 256

Config Serialin = Buffered , Size = 20

Config Portb.7 = Output 'displaybelechtung PWM

Displaybeleuchtung = 255

Enable Interrupts
Enable Timer2

Timer2 = 0

Start Timer2
Start Adc

.... usw.

Sectic:

Compare2 = Displaybeleuchtung

Return


Bei jedem Sekundeninterrupt vom externen Uhrenquarz wird der Wert gesetzt... Der Pin funktioniert! Allerdings nicht im PWM Modus. Ich bekomme rein gar nichts raus. Den Teil "enable timer2, "timer2 = 0" und "start timer2" hab ich in einem anderen Forum gelesen. Brachte aber auch keine veränderung.

Kampi
15.07.2010, 13:00
Mit ein bischen unterstützung von Google:




$regfile = "m128def.dat"
$crystal = 8000000
$baud = 9600

Config Portb.7 = Output


Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1


Do
Ocr2 = 205
Loop

End

Felix H.
16.07.2010, 13:35
Hi,

es lag an dem "clear down"... da musste "clear up" hin. Gibts dafür eine Erklärung? Es müsste doch eigentlich beides möglich sein. Zudem in der Bascom Hilfe auch beides als möglich angegeben ist.