- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Mauseklavier 3 Wahlschalter aber 5 Programme

  1. #1
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1

    Mauseklavier 3 Wahlschalter aber 5 Programme

    Anzeige

    Praxistest und DIY Projekte
    Hallo ist es möglich mit Bascom einen mausklavier der 3 schalter hat 5 programme auszuführen?

    mein beispiel:
    Code:
    Do
    If Dip1 = 0 Then Gosub Prog_1       'Lauflicht1
    If Dip2 = 0 Then Gosub Prog_2       'Lauflicht2
    If Dip3 = 0 Then Gosub Prog_3       'Lauflicht3
    Dip1 = 1 : Dip2 = 1 : Dip3 = 1 Then Gosub Testlauf    'Ausgang TEST
    Loop
    Würde mich sehr freuen Vielen dank schonmal
    Mit Freundtlichen Grüßen
    Thorsten Sch.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo bastler,

    mit drei Dipschaltern, kann man 2^3=8 binäre Kombinationen einstellen.
    1. 000
    2. 001
    3. 010
    4. 011
    5. 100
    6. 101
    7. 110
    8. 111

    Dezimal sind das die Zahlen von 0 bis 7. Deshalb würde ich die Dipschalter an einen Port des µCs, beginnend mit Portpin 0, anschließen. Durch kann man die Schalter recht einfach abfragen und mit der SELECT-CASE Anweisung weiterverarbeiten.

    Im Code werden durch "and &B0000_0111" nur die Zustände der Dipschalter an PINB.0, PINB.1 und PINB.2 in die Variable Kodierschalter übernommen und Bit 3 bis Bit 7 in Kodierschalter auf 0 gesetzt.

    Danach einfach mit SELECT-CASE die Unterprogramme anspringen.

    Code:
    Dim Kodierschalter As Byte
    
    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

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    Hallo Searcher
    wenn ich richtig verstehe kommt das was in der do loop schleife nichts rein richtig?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Der bastler Beitrag anzeigen
    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:

    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
    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.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    Juhu Searcher
    werde es morgen mal propieren vielen dank

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    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 10:36 Uhr)

  7. #7
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    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

  8. #8
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    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?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Mauseklavier_einstellungen.PNG  

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Der bastler Beitrag anzeigen
    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
    Das war von mir nur die Auflistung aller möglichen binären Kombinationen.


    dann sollte es ja so aussehen sehe bild Richtig?
    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.


    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
    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.


    ach ja der Dip schalter ist gegen GND geschaltet.
    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.


    ist denn die reihen folge so richtig?
    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.


    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  10. #10
    Benutzer Stammmitglied Avatar von Der bastler
    Registriert seit
    09.05.2011
    Ort
    Langenhorn, Hamburg, Germany, Germany
    Beiträge
    72
    Blog-Einträge
    1
    Hi Searcher
    das letzte bild wahr nur ein beispiel
    angeschlossen ist das mauseklavier so
    PD0 - DIP1 - GND
    PD1 - DIP2 - GND
    PD2 - DIP3 - GND

    wie mach man das das auch 4 programme gehen?

    Mit Freundtlichen Grüßen
    Der bastler

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Golem.de guckt: Aber nein, aber ja, aber nein
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 15.09.2012, 09:10
  2. RP6 Programme
    Von J.M im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 22.02.2008, 21:52
  3. Programme
    Von AsUro-KidY im Forum Asuro
    Antworten: 6
    Letzter Beitrag: 16.03.2007, 21:59
  4. Programme in .hex
    Von xxxmichixxx im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 8
    Letzter Beitrag: 24.01.2006, 21:38
  5. Programme für PDA
    Von Felixx87 im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 2
    Letzter Beitrag: 13.01.2005, 18:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress