Forum: Mikrocontroller und Digitale Elektronik Problem mit CodeVisionAVR


von Chrissi (Gast)


Angehängte Dateien:

Lesenswert?

Ich verwende einen AVR 90S8535.
Der Compiler von CodeVision meldet immer Fehlermeldungen (siehe
Bild.jpg)

Kann mir jemand erklären was die Warnungen und die Errors bedeuteten.

von Johannes M. Richter (Gast)


Lesenswert?

Gib uns doch bitte Deinen Code oder mach einen neuen Screenshot, auf
denen die entsprechenden Zeilen zu sehen sind :)

von Codered (Gast)


Angehängte Dateien:

Lesenswert?

Ok der C-Code befindet sich im Anhang.

von crazy horse (Gast)


Lesenswert?

Schon mal drüber nachgedacht, wieviel Flash du eigentlich hast??
Die ersten beiden Arrays würden schon etwa 30kB belegen..., soviel hast
du bei weitem nicht zur Verfügung.

von Kai Markus Tegtmeier (Gast)


Lesenswert?

Ich tippe mal darauf, daß in den entsprechenden Zeilen versucht wird,
den "Variablen" tempsave, intsave etc. ein Wert zuzuweisen.
Das geht nicht! Sobald eine Variable im Quelltext das Steuerwort
"flash" enthält, wird sie zu einer Konstante, der einmal im Programm
(nämlich bei ihrer Deklaration) ein Wert zugewiesen werden kann. Der
Compiler sagt Dir mit den Fehlermeldungen, daß lvalue (also der
Bezeichner, der links vom Gleichheitszeichen steht) veränderbar sein
muß. Konstanten sind das nicht.

MfG
KMT

von Kai Markus Tegtmeier (Gast)


Lesenswert?

Habe jetzt den Code gelesen. Auch mit dem EEPROM wird das nicht
funktionieren. Im Regelfall haben die Atmels 512 Byte EEPROM. Du
benötigst in der Tat mit den ersten beiden 3-dimensionalen Arrays schon
20kB. Also Programm umstricken...

MfG
KMT

von crazy horse (Gast)


Lesenswert?

weiter unten steht dann aber wieder xdata - geht beim 8535 aber auch
nicht. Zumindest nicht direkt, der hat kein Speicherinterface für
externen Speicher.

von Codered (Gast)


Lesenswert?

Wie könnte ich das Program umstricken?
Welchen AVR müsste da verwenden?

von crazy horse (Gast)


Lesenswert?

naja, müsstest dich mal entscheiden, in welchen Speicherbereich das
ganze kommen soll. Alles hat Vor- und Nachteile.
Flash und interner Eeprom scheiden aufgrund der Grösse sowieso aus.
Blieben als Alternativen:
-externer RAM (dafür sollte der MC über ein Speicherinterface verfügen,
belegt aber 18 Ports) in FRrage kommen der 8515 oder Mega8515
-externer I2C-EEPROM, braucht nur 2 Pins, ist aber langsamer
-Atmel data flash

von Josef (Gast)


Lesenswert?

I2c EEproms

von Josef (Gast)


Lesenswert?

An und für sich guter Code: Aber : KEINE EINZIGE ZEILE KOMMENTIERT !
PROGRAMM WERTLOS (nach 3 Monaten)!!

JOSEF

von Kai Markus Tegtmeier (Gast)


Lesenswert?

falls es noch mehr Daten werden, könnte man langsam über die Verwendung
einer Speicherkarte nachdenken. Ansonsten externes I2C-EEPROM verwenden
oder externes SRAM (belegt aber viele Portleitungen).
Auf jeden Fall mußt Du die Abspeicherung der Daten vollkommen ändern.

Flash scheidet nicht nur aufgrund der Größe aus, die Variablen werden
ja erst im Programm erzeugt...

MfG
KMT

von Codered (Gast)


Lesenswert?

Vielen Dank für die Unterstützung.
Wenn ich die Speichererweiterung mit einem I2C-EEPROM durchführen will,
was muss ich da tun?
Welchen I2C-EEPROM nehme ich da?
Wie muss ich den I2C-EEPROM  an meinen AVR90S8535 beschalten?
Gibt es zu dieser Thematik einen C-Code zu Ansicht?

von Codered (Gast)


Lesenswert?

Ich habe mich da mal informiert.

Der I2C-EEPROM Typ 24C64 wäre womöglich dafür geeignet.
Dieser Chip hat 64KByte Speicher.

von Peter D. (peda)


Lesenswert?

Für 30kB muß es mindestens ein 24C256 (32kB) sein.
Der 24C64 hat nur 8kB.


Peter

von Codered (Gast)


Lesenswert?

Weisst du wie man den am AVR beschaltet und programmiert?

von Kai Markus Tegtmeier (Gast)


Lesenswert?

Da wirst Du nicht umhin kommen, dich mal ein wenig mit den Datenblättern
zu beschäftigen. Soweit ich weiß, sind in Codevision die I2C-Funktionen
ganz gut beschrieben. Und dann könnte dieser Thread noch als
Anhaltspunkt dienen:

http://www.mikrocontroller.net/forum/read-4-96495.html#new

KMT

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.