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

Re: Probleme mit Multiplexerabfrage Kategorie: Programmierung (von Alfred - 12.04.2004 14:27)
Als Antwort auf Re: Probleme mit Multiplexerabfrage von André H. - 11.04.2004 3:07
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT_V2
Hallo André,

Danke für die Beispiele, jedoch so richtig funktioniert dies bei mir nicht.
Ich bekomme alle 4 Werte von den ersten 4 Ports vom MUX heraus, wobei aber nur am ersten Port
ein Sensor angeschlossen ist - normalerweise müssten die doch 0 sein, oder?
--> sie zeigen alle den selben Wert an.
Normalerweise müsste ich doch mit dieser Abfrage "lcdext.zahl(AD[0])" nur den ersten Sensor
abfragen können und bei den anderen AD[1] bis AD[3] müsste 0 stehen.



<code>
<font color="0"><b>thread</b></font> getad

 {
   <font color="0"><b>for</b></font> i=0...3
  {
   ports.set(PortA,i <font color="0"><b>and</b></font> 0b01);
   ports.set(PortB,i <font color="0"><b>and</b></font> 0b10);
   <font color="0"><b>sleep</b></font> 25; <font color="#008000"><i>// Das ist wichtig !</i></font>
   AD[i]=pcfad.getAD(0,0);

   <font color="0"><b>run</b></font> 255;
   <font color="0"><b>yield</b></font>;
   <font color="0"><b>resume</b></font>;
   
  }
    <font color="#008000"><i>//Wertausgabe</i></font>
    lcdext.goto(1,0);

    lcdext.zahl(AD[0]);
    lcdext.goto(1,8);
    lcdext.zahl(AD[1]);
    lcdext.goto(2,0);
    lcdext.zahl(AD[2]);
    lcdext.goto(2,8);
    lcdext.zahl(AD[3]);
    <font color="0"><b>sleep</b></font> 1000;
}
<code>

Ich weiÃ? es ist schwierig mit mir!
Danke im voraus:-)
mfg Alfred


> Hallo Alfred,
>
> > Problem:
> > 1.) Möchte 16 Sensoren KTY-10 von Multiplexer über oben beschriebene Hardware abfragen und
> > auf dem ext. Displays nacheinander anzeigen (Sensor 1 - 16).
> > <b><i>--> Mir ist leider nicht klar, wie ich in der Schleife (Ansteuerung MIC14052) die Abfrage
> > der einzelnen Sensoren unterbringe bzw. wie ich diese Abfrage am ext. Displays anzeigen kann
> > </i></b>
> > -->Ohne dem Multiplexer habe ich die Abfrage einwandfrei geschafft!
>
> Du muÃ?t nach dem Setzen des Analog-MUX eine kleine Pause einbauen.
> Ansonsten kann es sein, daÃ? Du keine korrekten Werte bekommst.
> Auch hast Du in Deinem Code ein paar Fehler bei der Benutzung der Variablen.
> Am besten hälst Du Dich am Beispiel zum Analog-MUX:
> 1. MUX setzen
> 2. kleine Pause
> 3. AD-Ports abfragen
> 4. wieder zu 1.
>
> <code>...
>   <font color="0"><b>for</b></font> i=0...3
>   {
>    ports.set(PortA,i <font color="0"><b>and</b></font> 0b01);
>    ports.set(PortB,i <font color="0"><b>and</b></font> 0b10);
>    <font color="0"><b>sleep</b></font> 25; <font color="#008000"><i>// Das ist wichtig !</i></font>
>    

>    pcfad.getAD4(0,AD);
>    <font color="0"><b>for</b></font> j=0...3
>    {
>     lcdext.line(j);
>     lcdext.zahl(AD[j]);
>    }
>    <font color="0"><b>sleep</b></font> 2500;
>   }
> ...

>
> Um den Zustand aller 16 Sensoren korrekt in AD[] abzulegen, wäre folgendes
> notwendig:
>
> ...
>  <font color="0"><b>byte</b></font> temp[4];
> ...
>   <font color="0"><b>for</b></font> i=0...3
>   {
>    ports.set(PortA,i <font color="0"><b>and</b></font> 0b01);
>    ports.set(PortB,i <font color="0"><b>and</b></font> 0b10);
>    <font color="0"><b>sleep</b></font> 25; <font color="#008000"><i>// Das ist wichtig !</i></font>
>    

>    pcfad.getAD4(0,temp);
>    <font color="0"><b>run</b></font> 255;
>    <font color="0"><b>yield</b></font>;
>    <font color="0"><b>for</b></font> j=0...3  AD[i*4+j]=temp[j];
>    <font color="0"><b>resume</b></font>;
>   }
> ...

>
> MfG André H.
>


    Antwort schreiben


Antworten:

Re: Probleme mit Multiplexerabfrage (von André H. - 16.04.2004 7:56)
    Re: Danke André (von Alfred - 15.04.2004 21:14)
Re: Probleme mit Multiplexerabfrage (von Tom - 13.04.2004 13:36)