Hallo,
auch wenn es hier wohl keinen Unterschied macht - die folgende while-Schleife wird nicht ausgeführt:
Code:
while (PINA==0x00) // Kein Signal, keine Aktion
{
PORTB=0x00; // ggf. noch anliegende Signale löschen
}
Dazu müssten alle 4 Taster gedrückt sein und zudem auch alle 4 restlichen Pins am Port A auf Low liegen. Da bei PA4 bis PA7 die Pullups aktiv sind und in deinem Schaltplan extern nichts angeschlossen ist, wird hier immer high-Pegel anliegen. Außerdem verstehe ich nicht, wozu diese innere Schleife gut sein soll 
Noch Tipps zur weiteren Fehlersuche:
- Tritt das 4-Sekunden-Problem auch auf, wenn du die Eingänge des Motortreibers direkt mit +5V oder GND verbindest?
Falls ja, dann wäre dort der Fehler zu suchen.
- Wenn das nicht die Ursache ist, könntest du herausfinden, ob der Mikrocontroller einen Reset macht (z.B. bei Programmstart eine LED an einem Port kurz leuchten lassen und wieder ausschalten). Wenn die LED dann im normalen Programmablauf aufblitzt, hat der Controller neu gestartet. (Eventuell Brown-out-detection aktiv geworden?)
Grüße, Bernhard
Lesezeichen