hallo,
zu sehen ist da jetzt nichts.
interrupt zulangsam?
müssen die werte nicht vielleicht ein wenig kleiner sein damit er es schaft so ca 50?
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
-> MEIN PROJEKTBLOG <-
hallo,
zu sehen ist da jetzt nichts.
interrupt zulangsam?
müssen die werte nicht vielleicht ein wenig kleiner sein damit er es schaft so ca 50?
Bei nur 10 Zyklen bis zum nächsten Interrupt wird das nichts. Da ist die Interruptsroutine bei weitem noch nicht fertig bevor der Nächste Interrupts kommt. Dazu hätte man auf Inerrupts auch ganz verzichten können.
Selbst mit 16 Mhz Takt un Prescaler von 16 wird das noch knapp.
Das Programm läuft entsprechend deutlich langsamer ab, vermutlich etwa ein Interrupt etwa alle 150 Zyklen. Das mancht dann für eine Periode von 256 ISR Aufrufen rund 38000 µs = 38 ms. Das sollte dem eher langsamen Blinken entsprechen. Wenn möglich sollte man ein Hardware PWM nutzen. Das kann der Timer0 ja auch.
Ich brauch am Ende nur 2-3 PWMs. Aber ich werds einfach mal mit drastisch geringerer Rate versuchen.
-> MEIN PROJEKTBLOG <-
Okay bei einem Prescaler von 8 und einem PWM-Wert von 100 blinkt die LED ca. 2x in der Sekunde. Bei einem Prescaler von 64 wird einem schon langweilig während man auf den nächsten Zustandswechsel wartet.
-> MEIN PROJEKTBLOG <-
Lesezeichen