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.
Gib uns doch bitte Deinen Code oder mach einen neuen Screenshot, auf denen die entsprechenden Zeilen zu sehen sind :)
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.
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
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
weiter unten steht dann aber wieder xdata - geht beim 8535 aber auch nicht. Zumindest nicht direkt, der hat kein Speicherinterface für externen Speicher.
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
An und für sich guter Code: Aber : KEINE EINZIGE ZEILE KOMMENTIERT ! PROGRAMM WERTLOS (nach 3 Monaten)!! JOSEF
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
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.