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 Ingo - 9.04.2006 19:18)
Als Antwort auf Re: Inkremental Geber an der Station von Sascha - 7.04.2006 1:14

> 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 6:20)
    Re: Inkremental Geber an der Station (von Sascha - 10.04.2006 22:12)