www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit CodeVisionAVR


Autor: Chrissi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Johannes M. Richter (Gast)
Datum:

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

Autor: Codered (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok der C-Code befindet sich im Anhang.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kai Markus Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kai Markus Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Codered (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Josef (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I2c EEproms

Autor: Josef (Gast)
Datum:

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

JOSEF

Autor: Kai Markus Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Codered (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Codered (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich da mal informiert.

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

Autor: Peter Dannegger (peda)
Datum:

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


Peter

Autor: Codered (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weisst du wie man den am AVR beschaltet und programmiert?

Autor: Kai Markus Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.