Phasenverschiebung

Gast #342401
Lesenswert?
• ▲
▼
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
Gast #342403
Lesenswert?
• ▲
▼
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren