Hi,
ich habe einen Atmega128 und wollte den Timer2 PWM für die Displaybeleuchtung nehmen. Mein code:
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.
Lesezeichen