Fehlt da evtl noch die "Enable Interrupts"-Anweisung?
Kann gut sein, dass man die bei PWM auch braucht.
Hallo , hier im Forum ist ja copy und paste nicht so gefragt deswegen stell ich meine bisherigen Ansätze hier mit rein ..
Irgendwie will der Timer nicht aufdimmen bzw nicht wieder abdimmen.
Der Timer1 ( 16Bit ) ging prima nur der zweite will nicht . Bin schwer am verweifeln
Vielleicht kann mir ja jemand von euch den entscheidenen Tip geben . Ach so für den anfang reicht es wenn das Programm erst eimal nur aufdimmt kurz wartet und wieder langsam ausgeht.Code:'====================================================== 'System-Einstellungen '====================================================== 'Definition für Mega 8 $regfile "m8def.dat" 'Angabe der Taktfrequenz (8Mhz) $crystal = 8000000 'Konfiguration der Analogeingänge 'Konfiguration Timer 2 für Hardware-PWM an OC2 (B.3) Config Timer2 = Pwm , Prescale = 128 , Compare = Clear Compare1a = 255 'Konfiguration der Ports Config Portb = Output Config Portd = Output '====================================================== 'Initialisierungen '====================================================== 'Start des PWM-Timers Enable Timer2 Timer2 = 0 Start Timer2 '====================================================== 'Hauptprogramm-Schleife '====================================================== Do Do Compare1a = Compare1a + 1 ' Dimmvorgang Waitms 12 Loop Until Compare1a = 255 Waitms 12 ' LED bleibt an Do Compare1a = Compare1a - 1 ' Dimmvorgang Waitms 12 Loop Until Compare1a = 0 Loop End
Velen Dank
Fehlt da evtl noch die "Enable Interrupts"-Anweisung?
Kann gut sein, dass man die bei PWM auch braucht.
#ifndef MfG
#define MfG
Hallo.
Gehört da nicht "Compare A Pwm = Clear up" rein ? Statt dem Compare = Clear ?
Dem RN Wissens Artikel über Bascom und PWM , muss man die Timer nicht starten!http://<br /> <br /> https://www.r...Bascom_und_PWM
Mfg niki1
Hallo t4-torsten,
für Timer2 kannst du nicht das Compare-Register für Timer1 benutzen.Compare1a = Compare1a + 1
Für Timer2 heißt es OCR2
Config Timer2 = Pwm , Compare Pwm = Clear Down , Prescale = 64
OCR2 = 125
(Port auf Ausgang)
Gruß, Michael
Nur ein Hinweis zu den Timer-Deklarationen in Bascom:
Ich bin so oft an Compiler-Fehlern hängengeblieben, dass ich die Timer immer nach Atmel-Datenblatt deklariere. Außerdem finde ich die Einstellungen Register transparenter.
Ein Beispiel für einen Attiny25:
Ich werfe auch immer einen Blick in die *.DAT (hier ATtiny25.DAT) um zu checken, ob Bascom überhaupt die Registernamen richtig schreibt...Code:$regfile = "ATtiny25.DAT" 'Controllertyp $crystal = 8000000 'crystal frequency '*** Timer 0 CTC (read signal from TSOP173x) ******************* Tccr0a = &B0000_0010 'OC0A/OC0B disconnected, CTC Tccr0b = &B0000_0010 'Prescale=8 @8MHz Ocr0a = 52 '8Mhz/(8*(52+1))=18867Hz On Oc0a _isr_t0ovf Nosave 'Interrupt NOSAVE_ISR! Enable Oc0a Enable Interrupts
Eine Ausnahme ist der weit verbreitete Atmega8. Den kann Bascom recht gut. Aber auch beim Atmega8 habe ich schon Bascom-Fehler bei ungewöhnlichen Timerkonfigurationen gefunden.
Lesezeichen