Atmega 328P synchrone Timer, Totzeit Vollbrücke

OP #3399824
Lesenswert?

Guten Tag in die Runde.
Ich erzeuge mir über zwei 8-Bit Timer vier PWM-Signale, die eine 
Vollbrücke ansteuern sollen. Hierfür verwende ich zwei "antiparallele" 
Look-up-Tabellen mit den Comparewerten.
Aktuell "synchroniesiere" ich die beiden Timer über die Voreinstellung 
des einen Timers auf einen Zahlenwert. Ich habe es noch nicht getestet, 
aber ich denke der Zahlenwert muss bei jeder Taktfrequenzänderung 
angepasst werden. Im Forum habe ich einen anderen Beitrag gefunden, 
indem bei der Erzeugung einer Totzeit zwischen den jeweiligen 
Schaltsignalen die Anpassung der Comparewerte angeraten wird.

Gibt es hier softwareseitig eine "elegantere" Lösung, um Timer- und 
Totzeitproblem zu lösen?

Anbei die Schaltsignale am uC:
Kanal1 schaltet HSS links
Kanal2 schaltet LSS rechts
Kanal3 schaltet LSS links
Kanal4 schaltet HSS rechts

Habe ich überhaupt Probleme mit der Totzeit? Ich verwende logic-level P 
und N-Kanal MOSFETs mit einer maximalen delay+rise time von 100ns.
#3399872
Lesenswert?

>  TCNT0=6;       // Timerwert setzen zum synchronen zählen
>  TCNT1=0;

Warum setzt du einen Wert auf 0 und den anderen Wert auf 6? Ist schon 
klar warum. Aber wenn du synchrone Timer brauchst, dann synchronisiere 
sie mit dem, was der Controller dazu anbietet:
1
GTCCR |= (1 << TSM) | (1 << PSRSYNC);
2
TCNT0 = 0;
3
TCNT1 = 0;
4
GTCCR &= ~(1 << TSM);

mfg.

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