Eine LED blinken lassen





Wir nutzen hier natürlich unsere Grundschaltung und haben diese jetzt erweitert und eine LED zugefügt.


Der Code könnte dann wie folgt aussehen  :


$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 32
$framesize = 32


config Portb.0 = output
LED alias Portb.0


Do

  Toggle Led
  Waitms 1000

Loop
end


Den "Kopf" haben wir ja schon kennen gelernt , dieser ist ja im Prinzip immer der Gleiche.
Laut Schaltung sitzt unsere LED ja am Pin B.0
Die Pins eines AVR sind am Anfang ohne einen wirklichen Zustand , also müssen wir als
nächstes erst einmal den Pin B.0 definieren ob es ein Ausgang oder ein Eingang sein soll.
Dies macht man mit der Zeile :

config Portb.0 = output

In diesem kleinen Beispielprogramm ist es jetzt zwar nicht so schlimm und auch noch übersichtlich.
Wenn man jedoch mehrere Pins benutzt , kann das schon für den ein oder andere etwas verwirrend sein
mit den ganzen Pinbezeichungen.
Dazu gibt es die schöne Möglichkeit einen Pin einen ALIAS - Namen vergeben zu können , der möglichst
sinnig und Bezug zur Funktion haben sollte.
In unserem Beispiel  lautet der Befehl :

LED alias Portb.0

Jetzt können wir anstelle von Portb.0 immer den Namen ' LED ' im Programmcode benutzen.
Als nächstes erstellen wir uns eine Endlosschleife mit dem Befehl :  

Do

Loop

Innerhalb dieser Endlosschleife lassen wir jede Sekunde den Status des Pin B.0 sich ändern.
Das Wechseln eines Status ( ob 1 oder 0 ) macht man mit dem Befehl  : toggle
Der Befehl waitms 1000 besagt : Warte 1000 Millisekunden


zurück zur Beispiel-Übersicht