Hallo, ich habe ein Problem mit der Programmierung meines ATmega8. Ich möchte die drei Timerausgängen OC1A, OC1B und OC2 um 120° voneinander versetzt haben und ein Puls-Pausen-Verhältnis von 50% haben. Ich möchte damit nämlich einen Wechselrichter ansteuern der mir ein 3-Phasenwechselstrom erzeugt. Ich habe es schon geschafft OC1A und OC1B um 120° zu verschieben, aber ich denke das es noch besser geht. Wäre um Hilfe sehr dankbar. Hier mein Programm, das ich schon habe: $Regfile = "m8def.dat" 'ATmega8-Deklarationen $Crystal = 3686400 'Quarz:3,6864 MHz Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output TCCR1A = &B01010000 TCCR1B = &B00001010 TCCR2 = &B00010100 Config TIMER2 = PWM , Compare PWM = Clear Down , Prescale = 1 PWM1A = 11 PWM1B = 3 PWM2 = 127 Do Loop End
oc1 ist ein 16-bit timer und oc2 ein 8-bit timer. hast du das berücksichtigt?
Hat keiner ne Idee. Ich habe bis jetzt folgendes: $Regfile = "m8def.dat" 'ATmega8-Deklarationen $Crystal = 3686400 'Quarz: 3,6864 MHz Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Config TIMER1 = PWM , PWM = 8 , Compare A PWM = Clear Up , Compare B PWM = Clear Up , Prescale = 1 Config TIMER2 = PWM , Compare PWM = Clear Down , Prescale = 1 DO PWM1a = 127 PWM1b = 127 Ocr2 = 127 Loop End Damit habe ich 3 gleiche Signale, aber wie kann ich die Phasenverschiebung hinbekommen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.