Table im AVR-EEPROM

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 29 4 2025  19:02:19      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Table im AVR-EEPROM

    







BID = 79812

Henne02

Stammposter

Beiträge: 493
Wohnort: Aachen
Zur Homepage von Henne02
 

  


Hallo!

Ich möchte eine Tabelle mit PonyProg in das EEPROM von einem ATmega8515 schreiben. Prinzipiell sollte das ja gehen, jedoch habe ich keine Ahnung wie dieses File auszusehen hat:

Bei der Tabelle handelt es sich um eine firing table für die Zündzeitpunkte eines DMX-Dimmers. Die Tabelle soll nicht im Flash-Teil sein, da ich unabhängig von der Firmware die tables aufspielen möchte. Innerhalb der Init-Sequenz wird dann die komplette Table in's SRAM eingelesen.

Diese Tabelle besteht aus 32Werten (je 1Byte groß).

Grüße, Hendrik



BID = 79818

Benedikt

Inventar

Beiträge: 6241

 

  


Zitat :
Henne02 hat am  5 Jul 2004 15:46 geschrieben :

Hallo!

Ich möchte eine Tabelle mit PonyProg in das EEPROM von einem ATmega8515 schreiben. Prinzipiell sollte das ja gehen, jedoch habe ich keine Ahnung wie dieses File auszusehen hat


Einfach die 32 Werte je als Byte in eine BIN Datei schreiben, fertig ! Ich versteh ehrlich gesagt das Problem nicht...


Zitat :

Innerhalb der Init-Sequenz wird dann die komplette Table in's SRAM eingelesen.


Ist das nicht Platzverschwendung ?
Wenn die Werte doch schon in einem Speicher sind, dann lass die doch dort und les die nur aus, wenn die wirklich benötigt werden.

BID = 79833

Henne02

Stammposter

Beiträge: 493
Wohnort: Aachen
Zur Homepage von Henne02


Zitat :

Einfach die 32 Werte je als Byte in eine BIN Datei schreiben, fertig ! Ich versteh ehrlich gesagt das Problem nicht...


Doch genau da liegt es

Ich erstelle im Editor eine "table.hex" und schreibe dort z.B. rein:

10, 20, 30, 40 (dezimal)

oder

10 20 30 40

oder
10
20
30
40

oder sogar
0x0A 0x0B 0x0C (hex)

Verstehst du jetzt, wo bei mir der Hase im Pfeffer liegt?


Zitat :
Ist das nicht Platzverschwendung ?
Wenn die Werte doch schon in einem Speicher sind, dann lass die doch dort und les die nur aus, wenn die wirklich benötigt werden.


Die Idee ist nett, scheitert jedoch an der AVR-Architektur. Ich habe in der ISR nur relativ wenig Zeit und da möchte ich nicht unbedingt, das EEPROM lesebereit machen, wenn es fertig ist den Prozessor für mehrere Cycles anhalten dann den kram auslesen...

Da ist es zeitsparender, einfach etwas SRAM dichtzumachen - ich hab ja eh mehr als genug davon

Grüße, hendrik

BID = 79868

Benedikt

Inventar

Beiträge: 6241

Du nimmst dir einen Hexeditor und schreibst da die Werte rein, speicherst das als BIN Datei, fertig.
Wenn du eine Hex Datei schreiben willst (mit einem normalen Editor), dann must du zusätzlich zu den Daten noch die Checksumme usw. berechnen und schreiben, das macht deshalb niemand, und genau dafür gibt es einen Hexeditor !

BID = 79907

Henne02

Stammposter

Beiträge: 493
Wohnort: Aachen
Zur Homepage von Henne02

Kannst du mir da einen HexEditor empfehlen.

Gibt es irgendwo genauere Infos über den Dateiinhalt (checksum...)? So könnte ich ein kleines Programm basteln, mit dem man die Dimmercurves EQ-artig erstellen kann, das am Ende die fertige Datei rausschmeißt...

Grüße, hendrik

BID = 79954

Jornbyte

Moderator



Beiträge: 7242

Du kannst auch dem Assembler diese Aufgabe stellen.
Dazu wurden die Directiven erfunden.
In der ASM-Hilfe steht es:

Zitat :
The ESEG directive defines the start of an EEPROM Segment. An Assembler file can consist of several EEPROM Segments, which are concatenated into one EEPROM Segment when assembled. An EEPROM Segment will normally only consist of DB and DW directives (and labels). The EEPROM Segments have their own location counter which is a byte counter. The ORG directive can be used to place the variables at specific locations in the EEPROM. The directive does not take any parameters.





_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 79996

Henne02

Stammposter

Beiträge: 493
Wohnort: Aachen
Zur Homepage von Henne02

Danke Jorn!

Das habe ich auch gerade in einem AVR-Tutorial entdeckt

Daraufhin wird ein eep-File erstellt, das aus

:'Adresse''15Bytes''1Byte_checksum"
:nächste Zeile...
:0..01FF (Ende)

besteht. (das Ergebnis wird übrigens nicht in den Simulator übertragen )

Da ich am liebsten ein kleines delphi-Programm schreiben würde, das mir die Tables erstellt, frage ich mich noch über die Zusammensetzung der checksum:

alle Bytes "0":
1.Zeile: F0
2.Zeile: E0
3.Zeile: D0
...

eines der Bytes der ersten Zeile
=1 EF
=2 EE
=3 ED

Die Summe von mehreren bytes einer Zeile wird wie ein einzelnes byte behandelt.

Deswegen glaubte ich schon an die Formel
F0 - Summe(n) =crc

Bei ein Byte =255 kam allerdings F1 raus, was meine Theorie ja wohl zu nichte macht...

Habt Ihr eine Ahnung wie diese Prüfsummen gebildet werden??
Ich finde nichts darüber

Grüße, hendrik

BID = 80003

ERDI-Soft

Stammposter



Beiträge: 200
Wohnort: Offenburg
Zur Homepage von ERDI-Soft ICQ Status  

Guck z.B. mal hier:

http://www.cs.net/lucid/intel.htm

oder hier:

http://chaokhun.kmitl.ac.th/~kswichit/illustrate/hex.htm

oder auch hier:

http://www.keil.com/support/docs/1584.htm

da findest du auch was:

http://www.8052.com/tutintel.phtml


Einfach mal in Google "Intel hex" eingeben, und du findest genug Links zu diesem Thema.

_________________
Wie immer gilt: Erst googeln, dann fragen!

(Für ICQ bitte erst Anfrage per PM, da alles andere nicht angenommen wird.)

BID = 80012

Jornbyte

Moderator



Beiträge: 7242

Oder noch einfacher. Im AVR-Studio das EEPROM öffnen, die Werte eintragen und in den Atmel brennen. Fertig

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 12 Beiträge im Durchschnitt pro Tag       heute wurden bisher 4 Beiträge verfasst
© x sparkkelsputz        Besucher : 183849917   Heute : 7800    Gestern : 10115    Online : 341        29.4.2025    19:02
7 Besucher in den letzten 60 Sekunden        alle 8.57 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.303733825684