Guten Abend, ich beschäftige mich seid kurzer Zeit mit der Programmierung in BASCOM und bin gerade dabei mit ein Programm für ein Modellauto (Maßstab 1/24) was beleuchtet werden soll zu schreiben. Habe jedoch leider ein paar Probleme wo ich nicht weiter komme. 1. Ich habe in meinem Hauptprogramm ein Unterprogramm drinnen, es funktioniert auf auf meinem AVR Board. Jedoch nicht so wie ich es mir vorstelle, denn es sollen die Led´s im Hauptprgramm und aus dem Unterprogramm gleichzeitig leuchten. Es lauft aber nach der Reihe ab. 2. Desweiteren würde ich gerne die Blinkgeschwindigkeit über einen Poti steuern, quasi die geschwindigkeit vom Lauflicht. Aeber so richig habe ich dazu noch nix gefunden im Netz. Vielleicht kann mir ja hier einer von euch weiter helfen. ich danke für eure Antwort. es grüßt Patrick Im Anhang ist das Programm mit dem Unterprogramm aus BASCOM
:
Verschoben durch User
So wird das nix. Nimm für das Tempo einen Wert, mit dem beide Objekte (Blitzer und Rundumdingens) durch weitere Teiler klarkommen. Und bitte als Konstante, Waitms mag keine Variablen. Z. B. Waitms 1. Dann führst Du in der Mainloop separate Zähler für Blitzer und Rundumdingens, die Du bei jedem Schritt der Mainloop hochzählst. Hat der Zähler des Blitzers (Byte reicht) den Zählerstand 105 erreicht, so setzt Du den Zähler auf 0 und schaltest die LEDs ein. Bei Zählerstand 5 schaltest Du die LEDs wieder aus, setzt aber den Zähler nicht zurück. Hat der Zähler des Rundumdingens (Long empfohlen) den Zählerstand 400, so schaltest Du LED 1 an (und alle anderen aus) und löscht den Zähler. Bei 100 schaltest Du LED 2 an, bei 200 LED 3 und bei 400 LED 4. Und natürlich immer alle anderen LEDs der Rundumattrappe aus. Wenn Du später etwas sicherer bist, ersetzt Du die Einzelbitschalterei durch Portzugriffe mit Werten aus einem Array. Wenn das funktioniert, guckst Du mal, wie Du einen Doppelblitzer hinbekommst. Und dann baust Du eine zweite Rundumleuchte ein, die mit geringfügig anderer "Drehzahl" läuft, so wie bei der echten Feuerwehr auch. Und wenn Du das alles durch hast, informierst Du Dich mal betreffs Timer-Interrupt und machst das dann so, wie es sich gehört. Zu Beginn der Lernkurve sei ja Waitms noch erlaubt, aber ernsthafte Programme bekommt man damit nicht so richtig gebacken. Da brauchst Du schon Multitasking. ...
... und das Poti (z.B. 10k Ohm)legst du an + 5 V und Minus und den Schleifer auf einen ADC - Eingang. Der ADC liefert dann einen Wert von 0 - 1024 für den vollen Drehbereich, den Du mit Wait(Poti) in die Blinkzeit umsetzen kannst.
Hallo Hannes, ich danke dir für deine Erklärung und ich habe mich auch schon ein wenig belesen im Bezug darauf wie der Timer eingesetzt wird. Werde das ganze gleich mal testen. @ Draki, könntest du mir vielleicht anhand von einem kleinen Beispiel das kurz erklären wie du das genau meinst? Würde auch ein 50k Ohm Poti gehen? Diese habe ich noch mehrfach da, da es die "Rundumlicht - Schaltung" schon ich sag es mal so analoger Ausführung gibt, also diese läuft über einen NE 555 und einem IC 4017. ich danke für eure Antworten. es grüßt Patrick
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.