Re: Array auf Chipkarte speichern Kategorie: I²C-Bus (von wema - 4.10.2005 23:51) | ||
Als Antwort auf Re: Array auf Chipkarte speichern von Marco - 4.10.2005 18:58 | ||
| ||
> Hallo Wema, > > Vielen, vielen Dank für deine Korrektur. Habe es sofort ausprobiert, war aber erfolglos. > Denke aber, dass es ein I2C Bus Problem sein könnte, benütze keine pull upâ??s. > Ich werte meine Chipkarte mit einem Reader von Chipdrive typ micro fun aus (bei Conrad gekauft). > Der Reader erkennt meine I2C Karte problemlos. Habe leider bis jetzt noch keine Daten darauf. > Hoffe aber, dies bald ändern zu können. > > Habe den Code folgendermassen angepasst, sollte so funktionieren. > > //-------------- > thread main > //-------------- > > { > float TAS, DP, AP, T, R, TASEQN, VSDP, VSAP, VST; > int TASINT[1800], arrayzaehler, eepromadresse; > > arrayzaehler=0; > eepromadresse=0; > > loop > { > VSDP = 0,00488*ports.adc(0); > VSAP = 0,00488*ports.adc(1); > VST = 0,00488*ports.adc(2); > if VSDP > 1 > { > DP=((5*VSDP)/5)-1; > AP=((94.4287*VSAP)/5)+14.3532; > R=5/VST-1; > T=1000/(math.ln(R)/3.9+1000/298); > TASEQN=((2*DP)/(AP/(287*T))); > TAS=math.sqrt(TASEQN)*3.6; > for arrayzaehler=0...1799; > { > TASINT[arrayzaehler]=TAS; > } > eeprom.writeintarray(0,eepromadresse,TASINT,1800); > eepromadresse=eepromadresse+2; > if arrayzaehler==1799; > { > arrayzaehler=0; > eepromadresse=0; > quit 63; geht in Host-Modus über > } > sleep 1000; > } > } > } > > Nochmals besten Dank für deinen Einsatz !!! > > Würde Dir sehr gerne weiterhelfen, benötige dazu aber mehr Erfahrung in der Auswertung von > Chipkarten. > > Gruss Marco > Hallo Marco, darf ich Dir noch ein paar Fehler korrigieren? Deine Schleife >for arrayzaehler=0...1799; > { > TASINT[arrayzaehler]=TAS; > } macht meiner meinung nach keinen Sinn, da Du hier in dem Array ja 1800mal den gleichen Wert (nämlich TAS) ablegst. Das war doch bestimmt nicht Deine Absicht?? AuÃ?erdem muÃ?t Du nach "for arrayzaehler=0...1799;" unbedingt das Semikolon löschen. Ansonsten geht der Compiler davon aus, das hier die Befehlszeile zuende ist und führt den Befehl danach in den geschweiften Klammern nur einmal aus. Das Gleiche betrifft auch Deine nächste If-Schleife. Auch dort in der 1. Zeile das Semikolon weglassen. Die geschweiften Klammern bedeuten, dass nach der Schleife nicht nur ein Befehl kommt, sondern mehrere. Sollte nur ein Befehl kommen, kannst Du die Klammern auch ruhig weglassen. Beispiel: for arrayzaehler=0...1799 TASINT[arrayzaehler]=TAS; Du brauchst doch auch eine Schleife, in welcher Du den arrayzaehler immer um 1 erhöhst, ansonsten wird die abschlieÃ?ende If-Schleife niemals ausgeführt, da Du nie für arrayzaehler den Wert 1799 erreichen wirst. Ã?berarbeite das Pogramm noch mal. Ich habe leider keine Zeit mehr. GruÃ?, wema P.S. Mit welchem Programm willst Du denn die Dtane aus der Karte auslesen? Hast Du eins beim Kartenlesegerät dabei gehabt? Kannst Du mir das mal probehalber zur Verfügung stellen? Ich habe schon einige Software ausprobiert, funktioniert hat keine. GruÃ? | ||
Antwort schreiben Antworten: Re: Array auf Chipkarte speichern (von Marco - 5.10.2005 21:51) |