
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Hallo zusammen, > > gibt es eine Möglichkeit, mehr Variablenspeicher zu bekommen ? > > Wie ich gehört habe, sind es bei der CC1 nur 24 byte... > > Demnach kann ich nur 12 WORD-Variablen benutzen. > > Vielen Dank, > Andreas > Hallo, Das Problem läßt sich auch auf recht "radikale" Art und Weise lösen. 1. ein externes I2c RAM (256 Byte) anbauen. 2. DeepXS - Einbauen und so Lesen und Schreiben der Bytes 3. Kleine Routine (push, pop) schreiben die z.B. 10 Byte Register (RAM - VARs) zwischen internem RAM externem RAM austauscht 4. Die Routinen z.B, in Unterprogrammen zum Wechsel der Variablen Inhalte - verwenden 5. Durch mehrfaches "Define Variable Byte[x]" verschiedene Namensgruppen verwenden So entstehen mehrere "virtuelle Variablensätze" mit eigenen Namen - Compiler kommt damit zurecht. Habe das fertig und im Test - z.Z. mit 12 * 12 Byte / Word Variablen - läuft super. Kleines Beispiel einer SUB Routine mit eigenem Var-Satz: #CMD9_Addr_High push_or_Pop = MEM_IO :GOSUB Pop_All WORD_gVar1 = WORD_gVar2 : GOSUB Convert_to_Hex : IF gVar2H = Hex_Value_Yes THEN iAdress_High = gVar2L :PRINT GOSUB Pop_Return RETURN iAdress_High - Byte Variable aus dem Bereich MEM_IO Word_gVar2 - Word Variable aus dem nicht gemappten (globalen) Variablen bereich. Die beiden Routinen Pop_ALL bzw. POP_Return "Mappen" 12 Variablen zwischen intern und extern. Die Variable Pus_or_POP enthält den geforderten "Register Satz" POP_Return Stellt den Variablenspeicher der Aufrufenden Routine wieder her und sichert die eigenen Daten im RAM-extern. Zugegeben am Anfang etwas aufwändig - dann aber nie wieder Problem mit Variablen - und sogar "globale" und "lokale" Variablen... Andreas |
| Antwort schreiben |