Hi,
also ich hab dein Programm mal kompiliert und dann kam folgender Fehler:
Bild hier
Wenn ich den Chip auf einen Mega32 ändere kompiliert er problemlos.
Ich denke du hast zu wenig SRAM im Tiny. Und es gibt keinen Fehler im Programm![]()
Moin alle zusammen,
habe hier ein kleines Problem und zwar möchte ich mit Hilfe eines AT Tiny 13 einen kleinen elektronischen Würfel per Zufallsgenerator, sprich "var = Rnd()"
programmen. Das Problem ist nun, dass Bascom in der Zeile der Dimensionierung der Variable und an der Zeile der Wertdefinierung (X = Rnd(6)) etwas zu meckern hat.
Hier mal der Quelltext:
$regfile = "attiny13.dat"
$crystal = 4000000
Config Pinb.0 = Input
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Start:
Dim X As Byte
Do
If Pinb.0 = 1 Then
X = Rnd(6)
End If
If X = 0 Then
Portb.1 = 0
Portb.2 = 0
Portb.3 = 1
Portb.4 = 0
End If
If X = 1 Then
Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
Portb.4 = 1
End If
If X = 2 Then
Portb.1 = 0
Portb.2 = 0
Portb.3 = 1
Portb.4 = 1
End If
If X = 3 Then
Portb.1 = 0
Portb.2 = 1
Portb.3 = 0
Portb.4 = 1
End If
If X = 4 Then
Portb.1 = 0
Portb.2 = 1
Portb.3 = 1
Portb.4 = 1
End If
If X = 5 Then
Portb.1 = 1
Portb.2 = 1
Portb.3 = 0
Portb.4 = 1
End If
Loop
End
----------------------------------------------
Wäre nett wenn mir jemand sagen könnte was daran genau falsch ist.
Als Fehler werden Error 22 (Dim X As Byte)
und Error 46 (X = Rnd(6))
angegeben.
mfg
Paulschen97
Hi,
also ich hab dein Programm mal kompiliert und dann kam folgender Fehler:
Bild hier
Wenn ich den Chip auf einen Mega32 ändere kompiliert er problemlos.
Ich denke du hast zu wenig SRAM im Tiny. Und es gibt keinen Fehler im Programm![]()
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo!
Stacks angeben!
Bei mir compilierts anstandslos!
MfG
Edit: Hab gerade was seltsames endeckt:
Mit diesem Header kommt "Out of SRAM"
Während mit diesem es anstandslos compiliert:Code:$regfile = "attiny13.dat" $crystal = 9600000 '$hwstack = 0 '$swstack = 0 '$framesize = 0
Weiß MWS Abhilfe?Code:$regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 0 $swstack = 0 $framesize = 0
MfG
Rone
Geändert von Rone (27.03.2012 um 00:09 Uhr)
Eventuell kompiliert er im 1. Fall anders und ist da mit der SRAM-Benutzung etwas "großzügiger"![]()
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Wenn keine Werte für Stack und Frame im Code angegeben werden, dann sind die Einstellungen der IDE unter Optionen --> Compiler --> Chip aktiv. Sind dort zu hohe Werte drin, dann gibt's Mecker.
Einstellungen von 0,0,0 sind nicht das Richtige, nur weil's compiliert, muss es deswegen nicht laufen. Man sollte so viel Speicher wie möglich und verfügbar für Stack und Frame verwenden, der Bascom Report gibt Auskunft darüber wie viel frei ist.
Das mit der Voreinstellung ist mir nachher auch in den Sinn gekommen. Nachgeschaut >> Es werden alle 64 Byte reserviert. Logisch das dann nix mehr frei ist.
An die Report Möglichkeit denke ich leider zu selten.
Danke nochmal für die Erläuterungen.
MfG
Rone
Danke! für eure schnelle Antwort, der Error-Code taucht nun nicht mehr auf.
Jetzt muss ich das Programm nur noch ein bisschen verfeinern und darauf achten, dass der Code nicht größer als 1kB wird,
ich quäle den Tiny jetzt schon mit 966 Byte. xD
Also Danke nochmal
und mfg
Paulschen97
Lesezeichen