Genau solche Funktionen habe ich ja:
Code:
inline void Motor_re_ru(void)
{ M_rechts_Relais_ein;
_delay_ms(15);
M_rechts_SD_ein;
if (status_motor_re==M_stop)
{
status_motor_re=M_aktiv;
status_motor_re_count=0;
}
}
inline void Motor_re_vor()
{ M_rechts_Relais_aus;
M_rechts_SD_ein;
if (status_motor_re==M_stop)
{
status_motor_re=M_aktiv;
status_motor_re_count=0;
}
}
inline void Motor_re_stop(void)
{
status_motor_re=M_stop;
M_rechts_SD_aus;
}
inline void Motor_re_faststop(void)
{
status_motor_re=M_stop;
M_rechts_SD_aus;
}
Erster Test mit neuer Hardware waren die Motoren, hatte ein eigenes Testprogramm erst linker Motor, dann rechter Motor, jeweils vor und zurück, mit verschiedenen PWM Werten, dann beide Motoren zusammen, etc. Funktioniert.
Nur werden jetzt die Motoren angesteuert obwohl diese Funktionsaufrufe nicht im entsprechendem Programmabschnitt enthalten sind.
Paradebeispiel Funktion Messerstart, seit 2 Jahren unverändert, dort werden zu Beginn die Fahrmotoren gestoppt. Dann erst der Messermotor gestartet, das kann ein paar Sekunden dauern bis der im Gras die Solldrehzahl erreicht. Dann wird noch ein paar Sekunden gewartet bis sich der Drehzahlregler eingeschwungen hat. Es kommen keine weiteren Funktionsaufrufe an die Fahrmotoren vor.
Trotzdem werden ca 3s nach Start des Messermotors auch die Fahrmotoren vorwärts aktiv.
Korrekt wäre abwarten der Solldrehzahl Mähantrieb, ca 2s warten, rückwärts fahren und dann nach links drehen.
Warum???
Bis dahin läuft alles korrekt.
Auch danach ist wie erwähnt GPS, Bluetooth, Messerdrehzahl, Erkennung Bumper usw korrekt. Nur die Fahrmotoren nicht.
LG Werner
Lesezeichen