entschuldigt bitte, daß ich Euch so lang hab warten lassen. Leider passieren Dinge, die man nicht beeinflußen kann. Jetzt hat´s mich (mal wieder) erwischt gehabt, für solche Sachen hier war leider keine Zeit mehr übrig. Aber mittlerweile hat sich die Lage wieder gebessert und wir können weiter machen.
Bevor wir ans Thema "Timer" gehen, sollten wir dieses Thema unbedingt noch durchkauen.
In Bascom hat man paar Möglichkeiten, ein bischen Struktur in den Code zu bringen. Das erleichtert einem das Leben ungemein. Z.B. bei der Fehlersuche, oder wenn man bestimmte Programmteile wiederverwenden möchte, empfiehlt es sich, das Programm modular aufzubauen.
Die schlechteste Möglichkeit ist hierbei der Befehl "Goto". Mit diesem Befehl wird der Programmablauf auf eine feste Sprungmarke umgeleitet. Der Code wird aber dadurch sehr verschachtelt, eine Wartung oder spätere Änderung wird dadurch sehr schwer bis unmöglich. Bitte verwendet diesen Befehl am Besten gar nicht, oder nur sehr sehr sparsam.
Ein besserer Stil ist, das Programm in mehrere Unterprogramme aufzubauen. Das Programm wird dadurch viel leichter zu lesen und verstehen. In diese Unterprogramme, kann man z.B. wiederkehrende Befehlsfolgen oder auch ganze Programmteile schreiben. Hier mal ein Beispiel:
If Zaehler = 1 Then Led1 = 0 Elseif Zaehler = 2 Then Led2 = 0 Else Led3 = 0 End If
Wait 1
Return
ist zwar ein relativ sinnfreies Beispiel, aber ihr solltet sehen, wie es abläuft: Durch das "Gosub Ausgaenge_setzen" leiten wir den Programmablauf um. Damit wird direkt auf die Sprungmarke "Ausgaenge_setzen" gesprungen. (Achtet auf den Doppelpunkt hinter der Sprungmarke, beim Gosub darf es nicht dabeistehen.) Jetzt wird der Code zwischen der Sprungmarke und dem "Return" abgearbeitet. Hier gibt´s nichts weiter zu beachten, alle Variablen die oben gegolten haben, gibt´s auch hier. Sie gelten also "global". Nach dem "Return" wird wieder direkt hinter dem Gosub weitergemacht, in unserem Beispiel das "Next Zaehler".
Noch einen neuen Befehl hab ich Euch untergejubelt. Bei der Definition der Ein/Ausgänge habe ich das "Alias" verwendet:
1
Led1 Alias Portb.0
Wir geben dadurch dem Ausgang PortB.0 einen Namen. Wir können diesen im Code genauso verwenden, als würden wir PortB.0 schreiben. Für uns wird´s dadurch aber viel leserlicher. Ein späteres Ändern, z.B. wenn LED1 mal einen anderen Ausgang kommen soll, wird viel einfacher, weil es nur einmal geändert werden muß.
Bascom bietet noch 2 weitere Möglichkeiten, den Code zu strukturieren: "Sub" und "Function". Darauf geh ich mal später drauf ein, sind jetzt noch nicht passend.
Gruß Gerhard
------------------------------------------------------------------------------------------- hier mein aktueller TinyKatalog
Dateianlage:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen der Dateianhänge angezeigt Jetzt anmelden!
bek07.bas.txt
Auch von mir ein ein Dankeschön für die guten Erklärungen!
So langsam Verstehe ich auch was in den div. Tiny`s im Hintergrund so abläuft! Bei mir wird es glaube ich noch ne`Zeit dauern bis ich was brauchbares zustande bringe!
Habe gestern endlich mal meine H-Brücke fertig gestellt! Nach diversen Problemen läuft sie jetzt!
ich würde mich freuen, wenn Du Deine Erfolge auch veröffentlichen würdest. Ich denke, gerade die Sachen mit der H-Brücke, ist für viele interessant. Selbst wenn es nicht perfekt ist, kann man darauf aufbauen und Du bekommst evtl. auch noch den einen oder anderen Tipp wie Du etwas verbessern kannst.