Variablen in XRAM oder ERAM (ATTiny13) ???
Hallo Forumler,
ich hatte mal gelesen, wenn man Variablen in den verkehrten Speicher schreibt gibt der Controller irgend wann den "Geist" auf!
Ich will eine Variable ziehmlich oft schreiben und abfragen
Der Tiny13 bringt mir ne Fehlermeldung, dass der SRAM nicht reicht wenn ich die Variable als Byte schreibe.
Er bietet mir aber "XRAM Byte" und "ERAM Byte" an!
Welches muss ich denn nun nehmen??
Danke, für Eure Hilfe im Voraus!
Code:
'************************************************************
'Voreinstellungen
$regfile = "ATtiny13.DAT" ' Definitionen für ATtiny13
Config Portb = Output ' alles Ausgänge
Portb = 1 ' Pullup setzen um Ausgang beim Einschalten auf 0 zu halten
Dim I As Xram Byte
'Dim I As ERAM Byte
Re: Variablen in XRAM oder ERAM (ATTiny13) ???
Zitat:
Zitat von HPM
Er bietet mir aber "XRAM Byte" und "ERAM Byte" an!
[...]
Code:
Dim I As Xram Byte
'Dim I As ERAM Byte
Hallo HPM!
Wenn du ERAM nimmst, dann wird die Variable in den EEPROM geschrieben und bei jedem Verwenden aus dem EEPROM ausgelesen. Das ist genau das was man sehr selten machen sollte. Am Anfang des Programms oder um Einstellungen zu speichern.
Ich hatte heute auch das Problem, dass mir Bascom für den ATtiny13 zu wenig Speicher meldete. Darauf hin habe ich ein wenig an den Einstellungen gedreht um den Speicher ein wenig umzuräumen.
Du kannst mit ``$hwstack``, ``$swstack`` und ``$framesize`` spielen. Ich habe bei meinem Programm diese Einstellungen verwendet. Allerdings muss ich jetzt noch mal nachlesen, was für was zuständig ist und ob ich damit keinen Blödsinn gemacht habe. Damit lässt sich das Programm zumindest wieder kompilieren.
Code:
$hwstack = 20
$swstack = 20
$framesize = 0
mfg
Gerold
:-)