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 Mathias, > > Zuerst: Bitte formatiere Quellcode immer mit dem code-Tag. Dann lässt sich dieser im Forum > leichter lesen. > > Warum bei Dir False zurückgegeben wird, kann ich Dir nicht sagen. > Deine Routinen sind, wenn man von ein wenig umständlichen Code absieht, in Ordnung. > Vielleich hat der Flash Deiner Unit eine Macke. > Versuche deshalb einmal ein anderes Segment. (z.B. Segment 2) > > Ich habe die Flash-Routinen sicherheitshalber nochmal gestestet: > <code>thread main > {byte buf[256],i; > for i=0 ... 255 > {// Array mit Dummywerten beschreiben > buf[i]=i*7; > } > lcdext.init(); > lcdext.print("Del Flash..."); > flash.DelSeg(1); > lcdext.print("Done"); > lcdext.line(2); > lcdext.print("Write Data..."); > lcdext.line(3); > lcdext.zahl(flash.writeByteArray(1,0,buf,256)); > lcdext.goto(2,13); > lcdext.print("Done"); > sleep 500; > quit 2; > }</code> > > Ich habe jedesmal True(-1) zurückbekommen.(Auch beim Ändern der Werte des Arrays.) > Teste einmal diese Routine. > > Hier noch ein paar Hinweise zu Deinem Code: > <code> for i=0...255 // lese Speicher aus > { > sicherung[i]=pcf8583.readbyte(i); > }</code> > Warum benutzt Du nicht pcf8583.readarray() ? > Absehen davon, daß es dann nur ein Einzeiler wäre, ist es auch schneller. > Außerdem, warum willst du die ersten 18Byte mit abspeichern ? > Hier befinden sich die Register für Zeit/Datum, Alarmwerte, Timer. > Zurückschreiben darfst Du diese auf jeden Fall nicht alle. Denn sonst kann evtl. > einmal der WD auslösen. (Falls Du diese Funktion des PCF8583 nutzt.) > > Auch dies hier kannst Du einfacher lösen: > <code> fehl=flash.writeByteArray(1,0,sicherung,256); // schreibe Sicherung in Speicher > if fehl==0 // Fehlermeldung > { > pcflcd.clear(); > pcflcd.goto(4,0); > pcflcd.print("FEHLER"); > pcflcd.clear(); > return; > } > if fehl==-1 > { > pcflcd.clear(); > pcflcd.goto(4,0); > pcflcd.print("SICHERUNG OK"); > pcflcd.clear(); > return; > } > }</code> > > So sollte es etwas einfacher sein: > <code> > pcflcd.line(4); > if flash.writeByteArray(1,0,sicherung,256) // schreibe Sicherung in Speicher > pcflcd.print("SICHERUNG OK"); > else > pcflcd.print("FEHLER"); > sleep 1000; // Ene Pause sollte schon rein. Sonst sieht man den Text kaum. ;-) > pcflcd.clear(); > return;</code> > > > MfG André H. > > > > > Hallo, > > ich brauche wieder einmal Hilfe. Ich benutze den Speicher im PCF8583 als ausfallsicheren Variablen- > > Speicher. Jetzt möchte ich eine Sicherungskopie im Flash der Unit ablegen um diese gegebenfalls > > Rückzusichern. Laut Beschreibung erhalte ich bei Schreibfehlern eine Rückgabe FALSE (0). Leider > > bekomme ich eine Fehlermeldung beim schreiben flash.writeByteArray() > > > > Vielen Dank > > > > function sicherung() > > { > > int t,i,fehl; > > byte sicherung[256]; > > pcflcd.clear(); > > loop > > { > > t=heizb.Taste(); // Tastaturabfrage > > pcflcd.goto(1,0); > > pcflcd.print("SPEICHER SICHERN"); > > pcflcd.print("JA-->8 / NEIN-->0"); > > if t==8 // wenn Taste 8 > > { > > pcflcd.clear(); > > pcflcd.goto(1,0); > > pcflcd.print("SICHERUNG START"); > > flash.DelSeg(1); // lösche Segment 1 > > sleep 1000; > > pcflcd.goto(2,0); > > pcflcd.print("FLASH GELOESCHT"); > > for i=0...255 // lese Speicher aus > > { > > sicherung[i]=pcf8583.readbyte(i); > > } > > pcflcd.goto(3,0); > > pcflcd.print("DATEN VORBEREITET"); > > sleep 1000; > > fehl=flash.writeByteArray(1,0,sicherung,256); // schreibe Sicherung in Speicher > > if fehl==0 // Fehlermeldung > > { > > pcflcd.clear(); > > pcflcd.goto(4,0); > > pcflcd.print("FEHLER"); > > pcflcd.clear(); > > return; > > } > > if fehl==-1 > > { > > pcflcd.clear(); > > pcflcd.goto(4,0); > > pcflcd.print("SICHERUNG OK"); > > pcflcd.clear(); > > return; > > } > > } > > if t==0 // wenn Taste 0 > > { > > pcflcd.clear(); > > return; > > } > > } > > }
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB