Forum: Mikrocontroller und Digitale Elektronik Compilierungsfehler 242 beim ATTiny13


von shorty (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich habe das Problem das sich mein Programm nicht für den tiny13 
compilieren lässt, jedesmal kommt die Fehlermeldung "Error : 242   Line 
:   20    Source variable does not match the target variable [ 200]  , 
in File : C:\Users...\Fotograf_zufall_v1-attiny13.bas" damit ist wohl 
der Auszug Z = rnd(100) gemeint. Ich habe das Programm auf einem mega8 
entwickelt und getestet, hier läuft alles, allerdings soll es nicht auf 
einen mega8 sondern auf den tiny13.
Was kann ich hier tun das es Fuktioniert?

Gruß, shorty

von shorty (Gast)


Lesenswert?

Hi,
habe das Problem nun umgangen, ich verwende nun einen Timer als 
zufallszahlgeber.
Kann man bei einem Tiny13 keine Variablen erzeugen??? bei mir erscheint 
jedesmal wenn ich eine Variable vom typ byte oder integer erstellen 
möchte die fehlermeldung out of SRAM space.... egal wie viel code ich im 
programm stehen habe... Wer kann mir hier weiter helfen?

von MWS (Gast)


Lesenswert?

shorty schrieb:
> Ich habe das Programm auf einem mega8 entwickelt

Das Wort "entwickelt" würde ich dafür als Übertreibung betrachten :D

1) Lies Dir in der Hilfe den Teil zu Eram Variablen durch, welche 
Beschränkungen die besitzen und vielleicht siehst Du dann auch, warum es 
völlig unsinnig ist, im gezeigten Code das EEProm für eine 
Arbeitsvariable zu verwenden.
2) Wenn die 64 Bytes SRam bereits im HW/SW Stack & Frame draufgehen, was 
soll dann noch für Variablen über sein ? Also sparsamer damit umgehen.

von Thomas E. (thomase)


Lesenswert?

shorty schrieb:
> Kann man bei einem Tiny13 keine Variablen erzeugen??? bei mir erscheint
> jedesmal wenn ich eine Variable vom typ byte oder integer erstellen
> möchte die fehlermeldung out of SRAM space

Doch. Natürlich kann man das. Aber der Tiny13 hat gerade mal 64 Byte 
RAM, der Atmega8 hingegen 1K.

Dein Speicher ist einfach voll. Deshalb kannst du keine weiteren 
Variablen anlegen. Denn das ist ja nichts anderes, als das Reservieren 
von Speicherplatz im RAM.

shorty schrieb:
> egal wie viel code ich im  programm stehen habe...

Das ist davon völlig unabhängig.

Hier hast du Grenze schon erreicht:
>$hwstack = 32
>$swstack = 8
>$framesize = 24

Verstehe zwar nichts von Bascom, aber ich denke das sind 
Speicherallozierungen. Das sind zusammen 64 Byte.

Controller mit derart mickrigem Speicher sollte man nur in Assembler 
programmieren, wo man Herr über jedes Byte ist. Oder keine 
Unterprogrammaufrufe und Interrupts verwenden. Dann kann man auf den 
Stack, der bei dir ja schon die Hälfte des verfügbaren RAM ausmacht 
verzichten.

Noch besser aber einen anderen Controller mit mehr RAM nehmen, z.B. 
Attiny 25/45/85

mfg.

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
Noch kein Account? Hier anmelden.