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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > > Hallo Peter, als einer der ersten, die auf LONGs gehofft haben, möchte ich mich erst mal für deren > > > > > Implementierung bedanken. Ich habe am Wochenende das alte Projekt von float auf long umgestellt > > > > > und nun läuft es alles in der erfoderlichen Performance. Super, danke. > > > > > > > > > > Darf ich dich zum Handling der longs noch um ein paar Kommentare bitten > > > > > -> Ausgabe auf LCD über Str_Printf( str, "%0l9d", longwert); > > > > > dann Ausgabe über str am Display? > > > > > > > > > > EEPROM, > > > > > > > > > > unsigned long l; > > > > > float f; > > > > > word wh, wl; > > > > > > > > > > /* geht nicht > > > > > l = 1234567890; > > > > > f = (float)l; > > > > > l = 0l; > > > > > l = (unsigned long)f; > > > > > */ > > > > > > > > > > l = 0xFEDCBA98; > > > > > wh = l >> 16; > > > > > wl = l & 0xffff; > > > > > > > > > > l = 0; > > > > > > > > > > l = (wh << 16ul) + wl; // geht nicht > > > > > l = (wh << 16ul); // geht auch nicht > > > > > > > > > > l = wh * 65536ul + wl; // aber das geht > > > > > > > > > > l = l & 0x0fffffff; // auch OK > > > > > > > > > > > > > > > --> Workaround über zwei words... > > > > > > > > > > Danke und Grüße > > > > > > > > > > Jo > > > > > > > > > > > > > Hallo Jo, > > > schau mal auf den gänderten Programmteil > > > Gruss Ulrich > > > > > > unsigned long l; > > > float f; > > > word wh, wl; > > > > > > l = 1234567890; <b> //wo ist das Problem??</b>kein Problem nur der Code zum Test > > > // f = (float)l; <b>solche cast Operatoren gibt es (noch?) nicht in Compact-C</b> > > > l = 0l; > > > // l = (unsigned long)f; " > > > > > > l = 0xFEDCBA98; > > > wh = l >> 16; > > > wl = l & 0xffff; > > > > > > l = 0; > > > > > > l = (wh << 16ul) + wl; // geht nicht <b>das ist schon OK, denn (wh << 16) ist 0</b> > > --> Ich hätte erwartet, dass l = FEDC wird ! > erst wird der Klammerausdruck berechnet und dort wird ein word um 16 bits nach links geschoben also > bleibt da nix von über. > > > > l = (wh << 16ul); // geht auch nicht " > > > > > > l = wh * 65536ul + wl; // aber das geht > > > > > > l = l & 0x0fffffff; // auch OK