Hi, Ich hab wieder mal ein Problem: Ich wolle, dass der Compare1a Wert und ein byte in den Eeprom gespeichert werden.Dies Funktioniert ja mit writeeeprom Compare1a , X (für's Byte) Wenn ich dann aber beim Neustert den Eeprom Abfragen will mit Readeeprom Compare1a , X dann passiert nichts, doch laut Code sollte er einen Programmteil überspringen. Nun Meine Frage: Wie Schreibe ich sachen ins Eeprom? Und WIe kann ich diese Daten beim nächsten Start wieder auslesen, und benutzen? Meine Methode Funktioniert ja nicht! - Code im Anhang Schonmal Danke Im Vorraus - Brauche dringend Hilfe!
Kann mir hier niemand helfen? Ich hätte schon gedacht, dass das Möglich ist. Oder hier will mir einfach keiner Helfen!
Pascal Haury schrieb: > Kann mir hier niemand helfen? Ich hätte schon gedacht, dass das Möglich > ist. Oder hier will mir einfach keiner Helfen! Ein bischen mehr Eigeneinsatz wäre schon angebracht ;-). Programmiere doch einfach mal einen 2 Zeile, in dem du schreibst und liest. Natürlich funktioniert das mit Bascom, dann kann der Fehler doch nur auf Deiner Seite sein ! Fusebits korrekt ?, Controller korrekt gesetzt ?????,
Was ist denn das für ein Programm ??? Ich zähle insgesamt 5 "DO ... LOOP" -Schleifen. Das ist meines Wissens nicht erlaubt; es darf nur eine Haupt-Schleife geben. Unter-Routinen sollte man als "Sub" oder "Function" deklarieren. Aber man springt keinesfalls bei Menü- Abfragen von einer "DO ... LOOP" Schleife in eine andere. (Unter C hat man ja auch nur einen "main"-Programmblock, nicht 5 ...) Ausserdem wird ein Programm besser lesbar, wenn man die Zeilen nach Kommandos einrückt ... Zu der Frage nach dem EEPROM: Die Routinen "Readeeprom ..." und "Writeeeprom ..." haben als letzten Wert einen Index (bei Dir "X"), der die Speicherstelle im EEPROM darstellt. Diese muss beim Schreiben und späteren Lesen GLEICH sein, sonst kann das nicht klappen. Das scheint bei Dir nicht der Fall zu sein (Einmal ist X=0 und einmal X=2).
Und ganz besonders durchdacht: das Writeeprom in eine Schleife zu setzen, damit können die maximal 100000 Schreibzyklen in kürzester Zeit erreicht werden :D
Hallo, ein gut gemeinter Tip: ich würde an Deiner Stelle den Code gründlich überarbeiten. Er sieht nicht nur sehr unstrukturiert aus, sondern ist auch nicht ganz optimal was das eepromhandling angeht. Bsp: Codeausschnitt : : Do Writeeeprom Compare1a , X If Pinc.2 = 1 Then Gosub Incra If Pinc.5 = 1 Then Gosub Cud Loop : : In der Schleife wird jedesmal das eeprom geschrieben, damit kommst Du in kürzester Zeit an die Abnutzungsgrenze des eeproms. Besser und auch schneller wäre es den Wert um RAM zu puffern, und in bestimmten Intervallen den Wert im eeprom zu persistieren. Und noch ein Tip, bei strukturierter Programmierung braucht man keine gotos und es erleichtert die Lesbarkeit. Gruß Heiko www.dh2faa.de
Dein EEprom wird schon im Elektrohimmel sein. Dein Code ist , sorry, Kappes. Fang mit 2 Zeilen an ;-).
Ja ok.... Ich geb ja zu dass es kein perfekter Programmierstil ist, aber Es Funktioniert jetzt mit meinem überarbeiteten code. Und das ist die Haiptsache, dass der Code funktioniert!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.