-
-
Erfahrener Benutzer
Roboter Experte
Ich sag dir mal vom schematischen her wie ich das in der Programmierung gemacht habe. Ich hab mir auch alles selbst beigebracht, also wird das auch nicht zu 100% optimiert sein, aber es ist mal eine Orientierungshilfe.
-Ich habe nur eine einzige DoLoop-Schleife (mit wenigen Ausnahmen für LCD, spielt jedoch keine Rolle), sie bildet das Hauptprogramm.
-Soweit es möglich ist werden immer nur Flags abgefragt, damit nie gewartet werden muss. Beispiel: Anstatt zu warten bis man ein Zeichen über RS232 oder I2C empfängt liest man nur die Zustandsflags der Buffer aus.
-KEINE Delays verwenden. Nur dort wo es wirklich hardwarebedingt nicht anders möglich ist. Das gleiche gilt für alle anderen zeitfressenden Dinge.
-Um den Roboter softwaremäßig nicht bei einer Warteroutine fest zu fahren kann man Timer oder den Watchdog nutzen, die dann nach einer bestimmten Wartezeit die Routine beenden, überspringen
-Möglichst die Hardware voll ausnutzen. Also Hardware PWM, I2C, UART, auch Timer, Watchdog,...
Die Rechnerei an sich ist extrem zeitsparend. Eine Addition beispielweise dauert glaube ich nur 5 Cycles oder sowas. Das sind wenige µs bis ns. Da kannst also weis der Geier was berechnen und es lastet den µC nicht aus.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen