Re: Inkremental Geber an der Station Kategorie: I²C-Bus (von Sascha - 10.04.2006 6:20) | |
Als Antwort auf Re: Inkremental Geber an der Station von Ingo - 9.04.2006 19:18
| |
Danke Ingo, probier ich heute Abend gleich mal aus :o))) Gru� Sascha > > Hallo zusammen :o) , > > > > vielen Dank Krassos.....Frage 2. ist damit zu 100% beantworten und mein Display begrü�t > > mich vielversprechend mit "Hallo" :o) > > > > Vielleicht kann noch jemand eine Blutgrätsche bei Frage 1 machen ? :o) > > > > Vielen Dank > > > > Gru� > > Sascha > > Hallo Sascha > Ich hab da ein kleines Programm zu dem Inkrementalgeber, vielleicht kannste was mit anfangen. > Es nutzt nicht die Hardware und das Modul von Chris Ullmann so das du es auch an der Station > benutzen kannst (den Hostpin mü�test du nach au�en führen, am Hosttaster abgreifen). > Das Programm ist natürlich nicht so schnell, aber für die üblichen handbedienten Geber reicht es. > Angeschlossen wird der Geber so: > die 2 Pins sind der Pushbutton, ein Pin an Masse den anderen an Port 8, > bei den 3 Pins den mittleren an Masse, die 2 äu�eren an Port 9 und 10, > an alle 3 Ports Pullup-Widerstände gegen +5V schalten (10k). > Das Programm zählt die Impulse vom Geber, der Pushbutton setzt den Wert auf Null. > Gru� Ingo > > > int wert; > int PushButton; > > thread Display > { > //LCD init > lcdext.init(); > lcdext.clear(); > loop > { > lcdext.goto(2,0); > lcdext.print("Wert = "); > lcdext.zahl(wert); > > lcdext.goto(1,0); > lcdext.print("Button = "); > lcdext.zahl(PushButton); > sleep 50; > } > } > > > thread Geber > { > int SpurA, SpurB, SpurAA; > > loop > { > PushButton = !(ports.get(8)); > SpurA = !(ports.get(9)); > SpurB = !(ports.get(10)); > > if SpurA < SpurAA //positive Flanke > { > if SpurB == -1 wert = wert + 1; > if SpurB == 0 wert = wert - 1; > SpurAA = SpurA; //Zustand am Port merken, für Flankenerkennung > } > > if SpurA > SpurAA //negative Flanke > { > if SpurB == -1 wert = wert - 1; > if SpurB == 0 wert = wert + 1; > SpurAA = SpurA;//Zustand am Port merken, für Flankenerkennung > } > > if PushButton == -1 wert = 0; > } > } > > thread main > { > run Geber; > run Display; > halt main; > } > > > > | |
Antwort schreiben Antworten: Re: Inkremental Geber an der Station (von Sascha - 10.04.2006 22:12) |