TextToEEprom

TextToEEprom
TextToEEprom
TextToEEprom.zip
Version: 1.0
2.0 MiB
502 Downloads
Details

TextToEEprom

In Mikrokontroller Anwendungen werden Texte z.B. für eine Displayausgabe häufig in externen EEProm Bausteinen abgelegt.

Das Programm “TextToEEprom” dient der Erstellung, der Pflege sowie dem Brennen der indizierten Textfiles in ein EEprom des Typs 24cxx. Je nach Anwendung können verschiedene 24cxx EEPromtypen ausgewählt werden. Die Übertragung der Daten kann seriell, direkt durch dem Microkontroller oder mit einem kleinen externen I2C-Brenner dessen Bauanleitung in der beiliegenden Dokumentation zu finden ist erfolgen. Der Bauplan für den Brenner und diverse Beispieleprogramme für die Nutzung mit einem Mikrokontroller sind als Basic Code in der beiliegeneden Hilfe enthalten. Dieser Code kann so auch leicht in beliebige ander Programmiersprachen portiert werden.

Um einen schnellen Zugriff auf die einzelnen Texte zu erhalten, wird jedem Text ein Index zugewiessen. Diese Indizis, die am Anfang des EEproms liegen, referenzieren (ähnlich einem Zeiger) die Startadresse des entsprechenden Textes im Speicherbereich des EEProms.

Im Programm wird nun z.B. von der fünften Speicherstelle des EEProm der Index für den Fünften Text im EEProm geladen und anschließend begonnen den Text Zeichen für Zeichen aus dem EEProm aus zu lesen und auszugeben, bis die Textende Markierung erreicht wird.

Das Textende wird durch einen frei definierbaren Bytewert gekenzeichent, der im Programm definiert werden kann.


Pseudo Code für die Verwendung der EEProm Daten:

Diese Beispiele zeigen, wie eine 24Cxx EEProm direkt mit einem PIC Microkontroller und der serielle Schnittstelle programmiert werden kann. Um ein besseres Verständnis der Funktionsweise zu erreichen, wurden die Programmteile mit vielen Kommentaren versehen. In diesem Beispiel wurde ein PIC 16F877 verwendet. Die Firmware kann mittels Bootloader über die Hardware serielle Schnittstelle des PIC (MAX 232 nötig) und Microcode Studio übertragen werden, dies erlaubt eine schnelle Fehlersuche bzw. Änderung der Software.
Diese Schnittstelle wird ebenfals für das Übertragen der EEprom Daten aus dem Programm TextToEEProm genutzt.
Die Beispielprogramme zeigen das Laden des EEProms mit Daten von der seriellen Schnittstelle, die Funktionsweise einer Textausgabe der mit TextToEEProm erstellten Texte und den Einsatz dieser Texte in einem kleinem Menü, dass über drei Tasten und ein LCD Display gesteuert werden kann.

Pic Basic Code Beispiel:Ladeprogramm für das EEprom (24C32 bzw. 24C64)‘————————[ Texte in das EEProm laden ]————————–
’24C32 10101ddd  (4K EEPROM) Adresse im Wordformat
TextToEEProm:
CONT = %10101000
ADDR = 0                    ‚Variable Addr mit null initialisieren
READDATA:
HSERIN 6000,START,[CHAR]            ‚Zeit um die Übertragung zu starten
IF CHAR = 251 THEN START            ‚End of File Zeichen
I2CWRITE SDA,SCL,CONT,ADDR,[CHAR]         ‚Daten in das EEProm schreiben
PAUSE 10                    ’10 ms Brenndauer abwarten
I2CREAD SDA,SCL,CONT,ADDR,[CHAR]        (Optional bei verwendung von ECHO)
HSEROUT [CHAR]                ‚Echo zum Sender (Optional bei verwendung von ECHO)
ADDR = ADDR + 1                ‚Addresse um eins erhöhen
GOTO READDATATextausgabe auf das LCD-Display (EEprom 24C32 bzw. 24C64)‘—————-[ LCD Ausgabe mit Word Pointer H/L ]—————————
’24LC32 4K Bytes %10101ddd (4K EEPROM) Adresse im Wordformat
‚TEXT => Erster Text ab INDEX
DiplayOut:                    ‚Der Index des Textes
CONT = %10101000
TEMP_WORD = (TEXT + OFFSET) * 2        ‚*2 Byte (High/Low)
I2CREAD SDA,SCL,CONT,TEMP_WORD,[ADDR]    ‚I*2 bei Word Pointer, lade Startadresse
READCHAR:
I2CREAD SDA,SCL,CONT,ADDR,[Char]
IF CHAR = 0 THEN RETURN            ‚End of Text Zeichen erkannt
ADDR = ADDR + 1                ‚Addresse um eins erhöhen
LCDOUT CHAR                    ‚Zeichen in das Display schreiben
GOTO READCHARTypischer Programmaufbau für eine Menüführung mit Displayausgabe

‚—————————[ Funktionsmenue ]———————————-
SETUP:
OFFSET = 11                    ‚Text offset Setup Menue
TEXT = 0                        ‚0-„Einstellungen …   “
GOSUB DISPLAYOUT                ‚Textausgabe aus EEProm
PAUSE 700
TEXT = 0                    ‚Setze Hauptmenüeintrag „Rollobedienung“
BACKTOSETUP:
OFFSET = 20                    ‚Text offset Setup Hauptmenue
MENUMAX = 2                    ‚0-3 Anzahl der Menü Einträge

‚******************************** Aktionsmenü  *********************************
MENU:
GOSUB DisplayOut
LOOP:
GOSUB GET_TASTER
SELECT CASE TASTER
CASE 1   ‚Zurück blättern
IF TEXT > 0 THEN                ‚Maximale Anzahl der Einträge erreicht?
TEXT = TEXT – 1
ELSE
TEXT = MENUMAX
ENDIF
GOSUB DISPLAYOUT
CASE 2    ‚Vor blättern
IF TEXT < MENUMAX THEN            ‚Minimale Anzahl der Einträge erreicht?
Text = Text + 1
ELSE
TEXT = 0
ENDIF
GOSUB DISPLAYOUT
CASE 4                        ‚Menüeintrag auswählen
PAUSE 255                    ‚255 ms warten Tastenwiederholrate
IF OFFSET = 20 THEN                ‚Hauptmenü
BRANCHL TEXT, [A0,A1,INIT]            ‚Init ist der letze Eintrag und beendet das Menü
ENDIF
IF OFFSET = 30 then B0
IF OFFSET = 40 then B1
END SELECT
GOTO LOOP

‚************************ Untermenüs *******************************************
A0:
TEXT = WERT                    ‚Atuellen Wert zugewiessen
OFFSET = 30                    ‚Text offset B0
MENUMAX = 3                    ‚Anzahl der Menü Einträge
GOTO MENU

A1:
TEXT = STATUS.2                 ‚Aktuelle Einstellung Binär 0 oder 1
OFFSET = 40                    ‚Text offset B1
MENUMAX = 2                    ‚Anzahl der Menü Einträge
GOTO MENU

‚********************* Aktionen der Untermenüs *********************************
B0:
SELECT CASE TEXT
CASE 0        ‚Eintrag 0
….
CASE 1        ‚Eintrag 1
::::
CASE 2        ‚Eintrag 2
….
CASE 2        ‚Eintrag 3
….
END SELECT
TEXT = 0                    ‚Setze Hauptmenüeintrag A0
GOTO BACKTOSETUP

B1:
SELECT CASE TEXT
CASE is < 2    ‚Eintrag 0..1
…..
CASE 2        ‚Eintrag 3
…..
END SELECT
TEXT = 1                    ‚Setze Hauptmenüeintrag A1
GOTO BACKTOSETUP

Was ist neu

Version 1.22.1  Neu

  • Es wurde eine Updatesuche integriert, die es nun ermöglicht, bequem aus der Anwendung heraus nach einen aktuelleren Version dieser Software zu suchen und diese dann direkt herunterzuladen.

Version 1.22.0

  • Erweiterung der EEProm Typen
         

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.