Der Speicher ist grösser als es auf den ersten Blick scheint, und Multithreading braucht man eigentlich nie.
Mal davon abgesehen hat das nichts mit dem Controller zu tun, sondern mit der Software.
Entweder man verwendet eine art mini-Betriebssystem (gibt's für die meisten Controller)
das Multitasking ermöglicht, oder man schreibt sich da selbst was einfaches.
Bei der primitivsten Variante gibt man einfach jeder betroffenen Funktion (also alle die quasi parallel ausgeführt werden sollen) ein Flag.
in main werden dann der Reihe nach alle Funktionen aufgerufen deren Flags gesetzt sind (und die Flags selber natürlich wieder gelöscht).
Ich kenne keinen einzigen Mikrocontroller der multithreading hardwaremässig unterstützt.
(von den gängigen Desktop-Prozessoren kann das doch auch nur der P4)
Wenn man sich mit Mikrocontrollern befasst (egal mit welchen)
muss man sich zunächst mal klarmachen, daß man sie nicht direkt mit normalen Computern vergleichen kann.
8MB RAM sind bei einem PC nur ein schlechter Witz, bei einem Mikrocontroller hingegen wäre das extrem viel.
30MHz Taktfrequenz wären bei einem PC unvorstellbar, für einen Mikrocontroller ist das schon sehr schnell.
(die ATmegas laufen mit max. 16MHz)
Ein ATmega32 ist absolut ausreichend für einen durchschnittlichen Roboter,
auch wenn der Speicher auf den ersten Blick extrem knapp zu sein scheint.
edit: da war ich wohl 'n bischen zu langsam![]()
Lesezeichen