Forum: Mikrocontroller und Digitale Elektronik AT90S1200: Alternative zu LPM?


von Uwe Naumann (Gast)


Lesenswert?

Hallo,

ich nutze obigen Controller und speichere einige Texte via:

Meldung1:  .DB "Test"

Diese Texte würde ich gern auf dem LCD ausgeben.

Nun gibt es ja auf dem AT90S1200 keinen LPM-Befehl. Wie könnte man das
elegant lösen und die Texte byteweise lesen?

Hat jemand ne Idee? Oder komme ich doch nicht ums byteweise Aufrufen
der Ausgaberoutinen herum?

Gruß Uwe

von crazy horse (Gast)


Lesenswert?

einzige Chance: ab mit den Texten ins EEPROM - ist aber auch nur 64byte
gross.

von Uwe Naumann (Gast)


Lesenswert?

Und wie kann ich die dann auslesen?

Die 64 Byte würden mir reichen.

Gruß Uwe

von crazy horse (Gast)


Lesenswert?

tja, so wie man den EEPROM eben ausliest, EEADR mit Startadresse laden,
eere setzen, Daten abholen. An das Ende der Strings sinnvollerweise
eine 0 anhängen, damit kannst du das Auslesen in einer Schleife
erledigen, ohne die Anzahl der zu lesenden Bytes zu kennen.

von Peter D. (peda)


Lesenswert?

Dann brauchst Du aber noch einen externen Reset-IC für die
Unterspannungserkennung.
Ansonsten ist nämlich nach 10-mal An- und Ausschalten nur noch Müll in
dem EEPROM.


Peter

von crazy horse (Gast)


Lesenswert?

solange dauerts gar nicht, das schafft man mitunter schon beim 1.Mal :-)

von remo (Gast)


Lesenswert?

Das EEPROM Problem beim 1200 kenn ich so:
- Nur das erste Byte im EEPROM ist betroffen
- Nur wenn beim schreiben der Saft ausgeht, kann Müll drin stehn.
- Beim reinen lesen des EEPROM passsiert nichts.

Richtig oder falsch?

@Uwe: Ich vermute dein eigentliches Problem lässt sich nicht lösen, da
du ja einen Speicherort brauchst, wo du den ganzen String ablegen
kannst. Da es kein Ram im 1200er gibt sieht das nicht gut aus. einzige
Chance: Du hast genügend von den 32 Registern frei und der String passt
da rein. Dann kannst du den String Zeichenweise in fortlaufende
Register laden und so den String im quasi Ram halten.

ciao
Remo

von Peter D. (peda)


Lesenswert?

> - Nur das erste Byte im EEPROM ist betroffen
nein

> - Beim reinen lesen des EEPROM passsiert nichts.
nein

Hab ich alles schon probiert.


Peter

von crazy horse (Gast)


Lesenswert?

kann ich bestätigen, ohne Spannungsüberwachung/rechtzeitigem reset wird
das nichts.

von Peter D. (peda)


Lesenswert?

Eine Möglichkeit wäre, die Daten im EEPROM mit Fehlerkorrektur
(Hamming-Code) abzulegen und dann zu hoffen, daß die Einschaltphasen
immer lang genug sind, um den Reparaturvorgang abzuschließen.

Allerdings ist der AT90S1200 eh nicht mehr für Neuentwicklung
empfohlen.

Ehe man da also noch viel Gehirnschmalz reininvestiert, sollte man
besser auf den ATTiny26 (leider nicht pinkompatibel) oder ATMega8
wechseln.


Peter

von Uwe Naumann (Gast)


Lesenswert?

Danke für alle Antworten. Mittlerweile bin ich auch wegen des
16Bit-Timers auf den (auch noch vorhandenen) AT90S2313 umgestiegen.

Gruß Uwe

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
Noch kein Account? Hier anmelden.