Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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)