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

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

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 Andrè, > erst mal muß ich Dir sagen, SORRY. > Ich habe Dich vieleicht doch falsch eingeschätzt.. Du machst es einem aber auch nicht leicht. > Gleiches darfst Du aber auch von mir behaupten :-) > Das Bfast scheint sich auch bei Dir zu bewähren... :-) Freut mich natürlich auch :-))) > > Zur Version 2.4b : Super! > Da muß ich wirklich mein Hut vor Dir ziehen. > > Was mir beim kurzen durchlesen aufgefallen ist, Du benutzt read() teilweise mit Fehlerprüfung, Teilweise ohne. > Hat das nen Grund? Ich meine ausser das das Modul nochnicht fertig ist? > Einmal so: > if read(eepromaddr,addr) > und einmal die neue Version: > if not read(eepromaddr,addr){lasterr=0x000200000000;return 0;} > > Bei den Longarrays verarbeitest Du die Longs in zwei Schritten als geteilte INTs mit shl 16 > Lässt sich das nicht ... anders... bzw. kürzer regeln? > Oder gibt das Probleme wegen 16 Bit bei shl... ? ich weis es jetzt nicht genau... > > Ansonsten hast Du scheinbar alle Macken beseitigt, die noch so gefunden hatte. > in writeintarray den Pagebreak hast Du gefixt.. der //kommentar kann da jetzt raus... > von wegen gerade Adressen... das ist erledigt :-) > > Wenn ich noch was für die Wunschliste äussern darf, wäre eine Stringarray-Funktion nicht schlecht. > Dann sind bis auf Float alle Datentypen drin. Aber wie gesagt.... Wunschliste... das Longarray war wichtiger. > > Noch ne Idee... ich gebe zu, ich kann sie erst morgen prüfen... aber ich meine, sowas gesehen zu haben. > Meine "Zielvorstellung" eines Programmes mit eeprom-Funktion (ins Unreine geschrieben) ist etwa so: > ee1=0 > addr=16384 > If writebyte(ee1,addr,wert) doerror (geterr()) > If writebyte(ee1,addr,wert) doerror (geterr()) > If writelong(ee1,addr,wert) doerror (geterr()) > If writestring(ee1,addr,wert) doerror (geterr()) > If writebyte(ee1,addr,wert) doerror (geterr()) > .... > addr=16384 > If readbyte(ee1,addr,wert) doerror (geterr()) > If readbyte(ee1,addr,wert) doerror (geterr()) > If readlong(ee1,addr,wert) doerror (geterr()) > If readstring(ee1,addr,wert) doerror (geterr()) > If readbyte(ee1,addr,wert) doerror (geterr()) > > Auffallen solte bei dem Beispiel vor allem, das keine Adressen gezählt werden. > Die doerror wäre eine vom Programmierer zugenerierende Fehlerfunktion in der er bestimmt, was im > Fehlerfall geschehen soll. Mir ist dazu (so meine ich wenigstens) letztens aufgefallen, das wenn man in einer > Funktion ein Funkionsparameter überschreibt, der nach oben weiter gereicht wird, unabhängig vom returnwert. > Also so etwa: > > //programmstart > a=0 > test() > //a ist jetzt 100 obwohl die Funktion nichts zurück gibt. > > funktion test (int a) > { > a=100 > } > > Wenn das so stimmt - und ich vermute das es so stimmt sonst könntest Du z.B. eigentlich keine Strings in > readstr zurück geben - dann müste für mein Beispiel oben der Parameter epromaddr nicht verändert werden > und in addr müste die Menge der geschriebenen/gelesenen Bytes plus aktuelle Adresse eingetragen werden. > Wenn das so stimmt - wie gesagt... ich kann es erst morgen nachmittag ausprobieren. > > Wenn das ginge, hätte man im Fehlerfall auch die aktuelle Schreibposition, es müste jedoch für die > Fehlerauswertung für jeden Schreibvorgang aber auch die Adresse mitgezählt werden. Verzichtet man auf > addr als Fehlerlokalisierung und schreibt am schluß einfach nur z.B. bei writestr addr=addr+32 > ginge das schneller. Hat also Vor- und Nachteile. > Ggf müstest Du auch neue Variablen in den Funktionen bauen da Du die Parameter teilweise als Returnwert > verwendest. > > Der Vorteil dieser Idee ist vor allem, das man sich als Programmierer nicht mehr überlegen muß, wie lang > den nun die Typen beim Schreiben sind, da am Schluß jeweils sozusagen schon die neue Startposition > für das nächste Schreiben übergeben würde. > > Ich werde mich morgen mal hinsetzen und ein Programm schreiben, was für die Verschieden Var-Typen > ein Schreiblesetest auf einem 24c512 macht. So wie man das von den älteren Speichertests kennt. > Ich hoffe, mein eeprom geht mir dabei nicht flöten. > > So... noch zwei Kleinigkeiten... ich melde mich morgen nachmittag 19.7. ... hoffentlich dann schon mit dem > Testporgramm. Den einen Thread wo ich so unsachlich gewesen bin, versuche ich noch gerade zu ziehen. > Und noch was... Danke für die Arbeit. Es lohnt sich! > > Gruß Rolf
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB