Hallo Searcher
wenn ich richtig verstehe kommt das was in der do loop schleife nichts rein richtig?
Hallo Searcher
wenn ich richtig verstehe kommt das was in der do loop schleife nichts rein richtig?
Das hängt von Deinem Programm ab. Wenn die Schalter ständig abgefragt werden müssen bzw sollen, sähe es so aus:
Das SELECT-CASE ist der Ersatz für Dein IF THEN und müßte Deinem Beispiel nach auch in die DO LOOP Schleife zusammen mit der PIN Abfrage. Wie gesagt, hängt von Deinem übrigen Programm ab.Code:do Kodierschalter = PINB And &B0000_0111 Select Case Kodierschalter Case 0 : Gosub Prog_0 Case 1 : Gosub Prog_1 Case 2 : Gosub Prog_2 ' Case 3 : Gosub Prog_3 ' Case 4 : Gosub Prog_4 Case 7 : Gosub Testlauf ' Case Else: gosub xy End Select Loop
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Juhu Searcher
werde es morgen mal propieren vielen dank
Zu den 3 Dipschaltern, sollte man noch einen Taster für Übernehme vorsehen. (Ist bei meinem alten 8048 so, bei dem man das S-RAM, komplett über Schalter binär programmieren muß).
Sinn des ganzen, ist daß wenn der µC läuft und man grade dabei ist die Schalterstellungen zu ändern, nicht die Schalterstellungen eingelesen werden, wärend man den ersten Schalter schon richtig eingestellt hat, aber die beiden anderen noch falsch stehen.
Dadurch würde das falsche Programm angesprungen werden.
Im Extremfall wenn alle drei Schalterstellungen verändert werden müssen, würden beim Wechseln des Programms dann folgendes passieren.
Ausführen der Programme.
altes Programm
falsches Programm 1
falsches Programm 2
neues Programm
Wenn es egal ist, das beim Programm wechsel bis zu zwei falsche Programme kurzzeitig ausgeführt werden, oder wenn die Programmwahl nur erfolgt wenn der µC stromlos (ausgeschaltet) ist, dann braucht man keinen Übernahmentaster.
Sonst würde man nur den Taster überwachen und nur wenn dieser gedückt ist in das CASE verzweigen und die Programmwahl durchführen.
Geändert von i_make_it (14.06.2018 um 09:36 Uhr)
Hallo i_make_it
die programme sollen nur einmal eingestellt werden und sollen das immer wieder durchlaufen, es ist für die Modeleisenbahn gedacht.
als beleuchtungen, aber danke
So mal zurück melden, wenn man es so macht wie
1. 000
2. 001
3. 010
4. 011
5. 100
6. 101
7. 110
8. 111
dann sollte es ja so aussehen sehe bild Richtig?
und wenn ich nur 4 haben möchte mache ich das so oder?
000 steht kein programm
001 ist dann programm 1
011 ist dann programm 2
111 ist dann programm 3
101 ist dann led test programm
ach ja der Dip schalter ist gegen GND geschaltet.
ist denn die reihen folge so richtig?
Das war von mir nur die Auflistung aller möglichen binären Kombinationen.
Besser wäre ein Schaltplan. Die drei Schalter sind anscheinend jeweils mit einem Portpin verbunden. Ist richtig aber ob die Anschlußbelegung der Schalter so stimmt, kannst nur Du wissen.dann sollte es ja so aussehen sehe bild Richtig?
Das kannst Du Dir frei aussuchen. Mit den Dip Schaltern stellst Du dann die zugehörige Bit Kombination ein um das jeweilige Programm auszuführen. Nach dem CASE ELSE : kann man ein Programm aufrufen, das keiner aufgeführten Kombination entspricht. zB eine Anzeige, daß man keine gültige Kombination eingestellt hat oder den CASE ELSE Zweig und nicht benötigte Kombinationen einfach weglassen.und wenn ich nur 4 haben möchte mache ich das so oder?
000 steht kein programm
001 ist dann programm 1
011 ist dann programm 2
111 ist dann programm 3
101 ist dann led test programm
Dem Layout nach sieht es aber so aus, als wenn der Schalter zwischen Plus und GND wechseln kann und dementsprechend GND (0) oder Plus 5V (1) zum µC geben kann. Wenn er nur gegen GND schaltet müssen noch Pullup Widerstände vorgesehen werden. Entweder die internen einschalten oder externe dazu löten.ach ja der Dip schalter ist gegen GND geschaltet.
Du hast PD0, PD1 und PD2 belegt. Das ist schon so wie ich es mir vorgestellt habe. Die Reihenfolge in der die Schalter an den Portpins angeschlossen sind legst Du fest und wenn sie Dir so gefällt ist es OK. Ich hatte PORTB in meinem Beispiel vorgesehen. Nicht vergessen, das auf PORTD bei Dir umzustellen.ist denn die reihen folge so richtig?
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Lesezeichen