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