Programmdateien: pwm.c , pwm.h , test_pwm.c + Treiberdateien comir_tmr.h/c und comir_pc.h/c
Das Projekt umfasst als neue Dateien den Motortreiber (pwm.c/h) und den Testrahmen test_pwm.c für diesen. Der Motortreiber nutzt Timer 5 zur PWM-Erzeugung und stellt folgende Funktionen bereit:#define COM_PC_RMSG_LEN 6 #define COM_PC_SMSG_LEN 0
Programmdateien: rotmess.c , rotmess.h , test_rotmess.c + Treiberdateien comir_lcd.h/c, comir_pc.h/c und comir_pwm.h/c
Der Treiber rotmess.c misst die Drehwinkel bzw. -winkelgeschwindigkeiten. Er nutzt Timer 0 und stellt dem Anwenderprogramm eine Funktion zum Auslesen der Inkrementschritte für eine in "rotmess.h" definierten Anzahl von Abtastschritten sowie eine Funktion zur Abfrage, ob innerhalb des Treibers Fehler, z.B. Unterabtastungsfehler, aufgetreten sind, bereit.
Das Testprogramm "test_rotmess" Wartet auf eine 6-Byte-Nachricht: zwei mal 16-Bit-vorzeichenbehaftete Vergleich-(OCR-)-Werte und einen 16-Bit-vorzeichenfreien Periodenwert. Die relative Pulsbreite ist jeweils der Betrag des Verhältnisses aus OCR- und Periodenwert. Zurückgegeben werden die empfangenen OCR-Werte und die Zählwerte der Winkelschritte als vorzeichenbehaftete 16-Bit-Zahlen. Vor jeder Messung laufen die Motoren schon mindestens eine Sekunde mit den vorgegebenen OCR- und Periodenwerten.
Test:#define COM_PC_RMSG_LEN 6 #define COM_PC_SMSG_LEN 8und die Anzahl der Abtastschritte je Messung ist in "rotmess.h" eingestellen auf:
#define ABTASTSCHRITTE 2000 // 2000*0,5 ms = Messzeit 1s
Autor: gkemnitz, Letzte Änderung: 06.11.2024 20:33:30