So vielleicht:
Code:
while (message[0]!='1')
{
unsigned int data[2];
LineData(data);
MotorSpeed(50,150);
if(data[0]>data[1])
{
MotorSpeed(150,50);
}
// Timeout ist jetzt 1: Wenn ein Zeichen empfangen wurde, wird dieses sofort eingelesen
SerRead(&message[0], 1, 1);
}
(ungetestet)
Zu 2.: Am Pin des Mega8 wird 0V oder 5V ausgegeben. Je nach Ansteuerung schalten die Transistoren der H-Brücke den Motor auf Links- oder Rechtslauf.
PB4, PB5, PD4 und PD5 schalten jeweils einen Strang der H-Brücke, durch das 4fach-Nand-Gatter IC3 werden die Transistoren eines Strangs immer gegensinnig geschaltet. Es sind dadurch nie beide Transistoren eines Strangs gleichzeitig durchgeschaltet. Zusätzlich wird über das Nand auch das PWM-Signal von OC1A bzw. OC1B eingemischt.
Lesezeichen