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:
Sieht jemand nen Programmierfehler?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







Zitieren

Lesezeichen