Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Marco, > > Mache bitte keine Doppelposts zum selben Thema. > Du hast bereits einen Thread zum selben Thema weiter unten angefangen. > Bleibe bitte in diesem, sonst wird's für Mitleser sehr unübersichtlich. > <a href="lesen.php?eintrag=11402">Hier für Mitleser der Thread, auf dem sich dieses Thema bezieht.</a> > > Benutze bitte auch unbedingt die Code-Tags, wenn Du Quellcode postest. > Deutlicher kann ich es oberhalb des Kommentarfelds nichtmehr schreiben. > > Nun aber noch ein paar Anmerkungen zu Deinen Routinen: > Daß das funktioniert, bezweifle ich eher. Zumindest wirst Du Dein EEProm > ziemlich schnell zerstören, da schon nach ca. 15maligen Ausführen des Programms > mehr als 100.000 Schreibzyklen auf einzelne Speicherzellen durchgeführt wurden. > Da 4x 1800 Byte pro Schleifendurchlauf geschrieben werden, welche sich > von den Adressen überschneiden, und das 1800 mal !? > > So, wie ich es sehe, willst Su auf dem EEProm folgendes Format haben: > Byte 0 bis 1799 den Wert TAS, pro Schleifendurchgang einen neuen Wert. > Byte 1800 bis 7199 die Werte GS_H, GS_T, und GS_U im folgendem Format: > HTUHTUHTU... usw. > > Das geht z.B. so: > <code>const GS_H=0; > const GS_T=1; > const GS_U=2; > //------------ > thread main > //------------ > { > float TAS, DP, AP, T, R, TASEQN, VSDP, VSAP, VST; > byte GS[3]; > int offset; > > loop > { > VSDP=1.1; > VSAP=4.6; > VST=2.3; > 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; > > sleep 15; > i2c.cstart(214); > i2c.write(50); > i2c.stop(); > sleep 15; > i2c.cstart(215); > GS[GS_H]=i2c.read(); > GS[GS_T]=i2c.read(); > GS[GS_U]=i2c.readlast(); > i2c.stop(); > sleep 15; > > eeprom.writebyte(0,offset,TAS); > eeprom.writebytearray(0,(offset*3)+1800,GS,3); > offset=offset+1; > if offset==1800 quit 1; > } > } > }</code> > > Ach ja, noch eine Bitte: Mach' ein OS Update. Das Original OS ist schon seit Jahren veraltet. > Weder von mir noch von irgendjemand anderem gibt es dazu noch Support ! > Du hast mit dem alten original OS keinerlei Vorteile, sondern nur Nachteile. > > MfG André H. > > > > Problem gelöst. So funktionierts. > > > > //------------ > > thread main > > //------------ > > > > { > > float TAS, DP, AP, T, R, TASEQN, VSDP, VSAP, VST; > > byte TASBYTE[1800],GS_H[1800],GS_T[1800],GS_U[1800]; > > int arrayzaehler_TAS,eepromadresse_TAS; > > int arrayzaehler_GS_H,eepromadresse_GS_H; > > int arrayzaehler_GS_T,eepromadresse_GS_T; > > int arrayzaehler_GS_U,eepromadresse_GS_U; > > > > eepromadresse_TAS=0; > > arrayzaehler_TAS=-1; > > eepromadresse_GS_H=1800; > > arrayzaehler_GS_H=-1; > > eepromadresse_GS_T=1801; > > arrayzaehler_GS_T=-1; > > eepromadresse_GS_U=1802; > > arrayzaehler_GS_U=-1; > > > > loop > > { > > VSDP=1.1; > > VSAP=4.6; > > VST=2.3; > > 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; > > arrayzaehler_TAS=arrayzaehler_TAS + 1; > > TASBYTE[arrayzaehler_TAS]=TAS; > > eeprom.writebytearray(0,eepromadresse_TAS,TASBYTE,1800); > > eepromadresse_TAS=eepromadresse_TAS+1; > > sleep 15; > > i2c.start(214); > > i2c.write(50); > > i2c.stop(); > > sleep 15; > > i2c.start(215); > > arrayzaehler_GS_H=arrayzaehler_GS_H + 1; > > GS_H[arrayzaehler_GS_H]=i2c.read(); > > arrayzaehler_GS_H=arrayzaehler_GS_H + 1; > > GS_T[arrayzaehler_GS_T]=i2c.read(); > > arrayzaehler_GS_U=arrayzaehler_GS_U + 1; > > GS_U[arrayzaehler_GS_U]=i2c.readlast(); > > i2c.stop(); > > sleep 15; > > eeprom.writebytearray(0,eepromadresse_GS_H,GS_H,1800); > > eepromadresse_GS_H=eepromadresse_GS_H+3; > > eeprom.writebytearray(0,eepromadresse_GS_T,GS_T,1800); > > eepromadresse_GS_T=eepromadresse_GS_T+3; > > eeprom.writebytearray(0,eepromadresse_GS_U,GS_U,1800); > > eepromadresse_GS_U=eepromadresse_GS_U+3; > > if arrayzaehler_GS_U==1799 > > { > > quit 63; > > } > > } > > } > > } > >