Gast
#122309
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.
|
Anzeige
|
Problem mit CodeVisionAVR
Gast
#122309
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.
Gast
#122310
Gib uns doch bitte Deinen Code oder mach einen neuen Screenshot, auf denen die entsprechenden Zeilen zu sehen sind :)
Gast
#122311
Ok der C-Code befindet sich im Anhang.
Gast
#122312
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.
Gast
#122313
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
Gast
#122314
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
Gast
#122315
weiter unten steht dann aber wieder xdata - geht beim 8535 aber auch nicht. Zumindest nicht direkt, der hat kein Speicherinterface für externen Speicher.
Gast
#122316
Wie könnte ich das Program umstricken? Welchen AVR müsste da verwenden?
Gast
#122317
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
Gast
#122318
I2c EEproms
Gast
#122319
An und für sich guter Code: Aber : KEINE EINZIGE ZEILE KOMMENTIERT ! PROGRAMM WERTLOS (nach 3 Monaten)!! JOSEF
Gast
#122320
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
Gast
#122321
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?
Gast
#122322
Ich habe mich da mal informiert. Der I2C-EEPROM Typ 24C64 wäre womöglich dafür geeignet. Dieser Chip hat 64KByte Speicher. Für 30kB muß es mindestens ein 24C256 (32kB) sein. Der 24C64 hat nur 8kB. Peter
Gast
#122324
Weisst du wie man den am AVR beschaltet und programmiert?
Gast
#122325
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 Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|