Forum: Mikrocontroller und Digitale Elektronik Konfusion bei #define Berechnung


von Frank (Gast)


Lesenswert?

hallo an alle!

Ich hoffe mir kann jemand helfen bei folgendem Problem.

Aufhänger ist eine Software basierte Servoansteuerung, die ich gerade 
mache. Dabei benutze ich den Timer1 vom mega644, stelle mit ocr die Zeit 
ein zu der das Steuersignal zurückgenommen werden muss. Dabei kann ja 
einigermaßen Problemlos alles auf mehrere Kanäle erweitert werden - 
sonst würde ich den pwm pin benutzen. Klappt auch, die Frage an der ich 
hänge ist folgendes:

Wenn ich die gewünschten Zeiten per Hand ausrechne ist alles gut, aber 
da ich das Servo Timing nicht genau weiß und komfortablerweise die 
Zeiten per define angebe, habe ich ein Brett vorm Kopf.

z.B. Zeiten in us
#define T_MIN        600
#define T_MAX        1200
#define T_DEAD       8000

#define COUNT_MIN    T_MIN*F_CPU/8000000

Ich möchte jetzt das Servo Signal in 8 bit angeben: 0 entspricht 
minimaler Stellung, also T_MIN und 255 Maximaler Stellung. 127 
Mittelstellung
Dann wäre also pro bit PWM Signal die Zeit im ocr einzustellen:

COUNT_MIN + PWM_VALUE*(T_MAX-T_MIN)*F_CPU/255/8000000

pro bit 5.88 us.

nur wie gehe ich da mit den Kommas um? Werden die nicht einfach 
abgeschnitten und ich gehe mit 5 us ins rennen? Damit liegt man ja 
totasl daneben.


Ich hoffe die Frage erklärt zu haben und ihr könnt mir erklären wie ich 
sowas #define technisch in den Griff kriege. Über T_MIN, T_MAX und 
T_DEAD in Verbindung mit einem U8 pwm_val.


schönen Dank!

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
Noch kein Account? Hier anmelden.