Ich glaube, diese Frage kann man so nicht mit Ja oder Nein beantworten.
In Bascom gibt es Labels und InterruptServiceRoutienen (ISR abgekürzt).
Ein Label enthält Anweisungen die der Reihe nach abgearbeitet werden. Es können mit IF oder SELECT oder DO-WHILE Abfragen bestimmte (in diesem Fall nicht benötigte/erwünschte) Befehle ausgelassen werden.
Ist das Label abgearbeitet, endet das Programm, oder das Label kann dauerhaft durchlaufen werden oder ein kann unter bestimmten Umständen nochmal durchlaufen werden oder aus diesem Label wird zurückgesprungen in ein anderes Label oder von dort aus wird erstmal in ein anderes Label gesprungen.
Eine ISR wird nur durch bestimmte Ereignisse aufgerufen. Z.B. wenn ein Taster gedrückt wird, eine ADC-Messung fertig ist, serielle Daten empfangen wurden, ein Timer ausgelöst hat, ...
Je nach AVR gibt es verschiedene INTs.
Wurde ein INT ausgelöst, werden die Schritte der ISR abgearbeitet. Diese unterscheiden sich nicht von Labels. ind die Schritte abgearbeitet, springt die ISR automatisch dahin zurück, wo sie hergekommen ist. Also an der Stelle des Programms, wo der INT ausgelöst wurde.
Im Prinzip lässt sich jeder Programmschritt irgendwie stoppen. Der Legoroboter, ein AVR und ein PC haben eines gemeinsam. Sie können (wie man es Männer auch nachsagt) nur eins zur Zeit. Sie können wirklich immer nur einen Schritt abarbeiten. Ist dieser fertig, geht's zum nächsten. Und immer so weiter, bis das Programm zuende ist.
Beim PC fällt das ganze nur deshalb nicht so auf, weil er schnell genug ist viele Schritte in kurzer Zeit abzuarbeiten. Und moderne Betriebssysteme regulieren die Abfolge der Schritte.
Ein Mikrokontrollerprogramm hingegen arbeitet langsamer. Das abarbeiten vieler Schritte kann das abarbeiten eines anderen Labels verzögern und diese Verzögerung kann ggf auch wahrgenommen werden. Spätestens wenn man viele Messungen in kurzer Zeit speichern und verarbeiten will. Das messen benötigt Zeit, das Verarbeiten benötigt Zeit und nach Ablauf dieser Zeit sollte evtl schon die nächste Messung fertig sein.
Ein Video aufnehmen wie man es von modernen Handys kennt ist mit einem AVR nicht möglich.
AVRs haben aber auch einige "ausgelagerte" Funktionen. Z.B. PWM. Es muss nur im Programm die Pulsweite angegeben werden und der AVR kümmert sich die ganze Zeit drum, das diese eingehalten wird, egal was das Hauptprogramm grade macht.
Ich hoffe ich konnte deine Frage halbwegs beantworten. Wenn nicht, dann musst du Beispiele geben und fragen, ob das was du vor hast möglich ist.
Lesezeichen