Hi, da ja immer wieder PIC's hier auftauchen und auch die User mit LCD auch dort zunehmen, stelle ich nun meine Lösung Texte bequem zu handlen (soweit es auf dem PIC möglich ist) hier rein. Sicherlich hat es schon so manchen genervt, die Character einzeln mit < movlw 'A' > zu laden. Sollte dem so sein, bietet dieses Beispiel bestimmt eine Lösung. Die Texte sind im Flash durch die Source abgelegt und werden durch einen 16Bit-Zeiger, der auf einen String zeigt, in einen RAM-Buffer (z.B. LCDBUFFER oder UARTBUFFER) geladen. Dort steht der String dann zur weiteren Verarbeitung bereit. MooseChecker
Den Text könnte man auch mit DA im Speicher ablegen. Dabei werden die einzelnen ASCII-Zeichen im 7-Bit Format abgespeichert und man benötigt für zwei ASCII-Zeichen nur ein WORD im Programmspeicher. Noch ein kleiner Tipp: Bei den 18Fxx werden mit DE deklarierte Werte im EEPROM und nicht an der aktuellen Programmspeicheradresse abgelegt. MfG Steffen
Ist das bei PIC's nicht Platzverschwendung? Die haben doch im Flash eine krumme Worbreite von 12 oder 14 Bit. Da muß man doch für ein Zeichen (Byte) ein komplettes Wort (12 oder 14 Bit) opfern. Oder ist das bei den neuesten mittlerweile behoben?
Wie gesagt, bei den 14-Bit-Pic´s lassen sich Texte mit DA .... als 7-Bit ASCII speichern also 2 Zeichen pro Word. Funktionieren tut das aber nur mit den PIC´s, die ihren Programmspeicher auch lesen können also z.B. mit der 16F87x Serie. Mit einem 16f62x funktioniert das nicht. Da muss ich auf RETLW XX -Folgen zurückgreifen also ein Zeichen pro Word. MfG Steffen
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.