Ich habe eine fast pwm beim timer0 eingerichtet.
Alles anzeigen
in der main ändere ich die Einschaltdauer
jetzt war ich der Meinung, Zeile 4, die Übergabe des neuen Wertes an Ocr0b ist atomar und kann nicht durch einen interrupt unterbrochen werden.
Ich habe aber welche, die etwa mit doppelter Frequenz von timer0 ausgeführt werden.
Es ergibt sich nämlich kein gleichmäßiges Leuchten der Leds, sondern ein kurzer (länger als ein Blitz) Helligkeitswechsel, derzeit alle ca. 3 Sekunden. Das komische, bei niedrig eingestellter Helligkeit ist dieser 'lange Blitz' heller, bei höchster eingestellten Helligkeit wird bei dem Blitz die Helligkeit dunkler und es gibt eine Einstellung, wo nix von dieser Helligkeitsänderung bemerkbar ist.
Wo ist mein Fehler?
Nachtrag: es hängt dieser Effekt mit dem Aufrufen der isr (aus timer1) zusammen. Es ist wie eine Schwebung.
BASCOM-Quellcode
- 'Led-timing
- 'die Blitzfrequenz sollte mindestens 60 Hz betragen
- 'timer0 im fast pwm-Modus prescale 1024, min. Frequenz= 61 Hz
- 'OCR0A=top-Wert, kleinerer Wert als &HFF=höhere Frequenz als 61Hz
- 'OCR0B=compare-Wert, Lichtblitzlänge=Helligkeit
- 'COM0A1 COM0A0 COM0B1 COM0B0 – – WGM01 WGM00 = TCCR0A
- '1 0 Clear OC0A on Compare Match, set OC0A at BOTTOM,
- ' (non-inverting mode).
- '1 0 Clear OC0B on Compare Match, set OC0B at BOTTOM,
- ' (non-inverting mode)
- 'Mode WGM02 WGM01 WGM00
- '7 1 1 1 Fast PWM
- '3 0 1 1 Fast PWM 0xFF BOTTOM MAX <<wird verwendet
- Tccr0a = &B0010_0011
- 'FOC0A FOC0B – – WGM02 CS02 CS01 CS00 = TCCR0B
- 'CS02 CS01 CS00 Description
- '1 0 1 clkI/O/1024 (From prescaler)
- Tccr0b = &B0000_0101
- 'Startwerte
- Ocr0b = 20
- 'Ocr0a = 254
- Led Alias Portd.5
- Config Led = Output
- Led_frequenz Alias Ocr0a
- Led_helligkeit Alias Ocr0b 'ED-Led
in der main ändere ich die Einschaltdauer
Ich habe aber welche, die etwa mit doppelter Frequenz von timer0 ausgeführt werden.
Es ergibt sich nämlich kein gleichmäßiges Leuchten der Leds, sondern ein kurzer (länger als ein Blitz) Helligkeitswechsel, derzeit alle ca. 3 Sekunden. Das komische, bei niedrig eingestellter Helligkeit ist dieser 'lange Blitz' heller, bei höchster eingestellten Helligkeit wird bei dem Blitz die Helligkeit dunkler und es gibt eine Einstellung, wo nix von dieser Helligkeitsänderung bemerkbar ist.
Wo ist mein Fehler?
Nachtrag: es hängt dieser Effekt mit dem Aufrufen der isr (aus timer1) zusammen. Es ist wie eine Schwebung.
Raum für Notizen
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tschoeatsch ()