Ich versuche mich gerad an der Simulation einer Kerzenflamme. Basis dafür ist natürlich ein Software-PWM. Ich habe mit dem RN-AVR-Tool den passenden Prescaler und Startwert für den Timer0 (8-Bit) errechnet und diesen in mein Programm eingetragen. Trotzdem flimmert das PWM. Nicht nur ein wenig, sondern extrem. Bei PWM-Werten von >50 ist so eine Art Blinken im Millisekundenbereich zu sehen. Irgendwas scheint da faul zu sein. Hier mein Code:

Code:
$regfile = "ATtiny2313.dat"
$crystal = 1000000

Config Timer0 = Timer , Prescale = 1
Config Portd = Output

On Timer0 Timer_irq

Enable Timer0
Enable Interrupts

Led_g Alias Portd.4

Dim Pwm1 As Byte
Dim Pwm_cnt As Byte

Dim Green As Bit
Const Timervorgabe = 246
Pwm1 = 100

Do

Loop

Timer_irq:
    Timer0 = Timervorgabe
    Green = 0
    If Pwm1 > Pwm_cnt Then Green = 1
    Led_g = Green
    Incr Pwm_cnt                 
Return
Sieht jemand nen Programmierfehler?