Zitat Zitat von RCO
Das ist in der Tat eine gute Idee! Allerdings muss man dann auch irgendwann ein Ende finden, vielleicht lässt man die Schlaufe 20 mal durchlaufen oder so.
Eine BEschränkung der Durchläufe braucht man nicht. Irgendwann sind die Motoren so ausgeregelt, dass sich der Korrekturwert nicht mehr ändert. Lässt man den Regler weiterlaufen, kann der Roboter auch noch auf sich ändernde Umgebungsbedingungen reagieren.
Zitat Zitat von RCO
Löst der Interrupt nicht aus, egal an welchem ADC eine Wandlung vorgenommen wurde? Das heißt auch die Linienverfolgung würde einen Interrupt auslösen, oder?
Der AD-Wandler kann so konfiguriert werden, dass er nach einer Wandlung (egal auf welchem Eingang der Multiplexer steht) einen Interrupt auslöst. Das muss man aber selbst schreiben, die vorgefertigten Funktionen können das nicht (wäre ja auch viel zu kompliziert für den Anfang). Im Interrupt muss dann entschieden werden, welcher Wert gerade gewandelt wurde und der dazu passende Programmteil ausgeführt werden.
Für die Interruptprogrammierung spickt man am besten bei der Sleep-Funktion und im Datenblatt des ATmega8 (*wühl*), damit man weiß, wo welche Bits gesetzt werden müssen um den gewünschten Effekt auszulösen.