Vorgehensweise Setup in den AVR bringen?

OP #1826276
Lesenswert?
• ▲
▼
Hallo Leute,

folgende Problemstellung.

Es geht um einen AVR und einen PC. Auf dem PC läuft ein Programm was mit 
dem AVR über RS232 kommuniziert und diverse Flags und Messwerte, IO etc. 
vernünftig darstellt. In diese PC Programm gibt es auch eine Seite wo 
jede Menge Parameter (ca.30)eingestellt werden, die bei Veränderung an 
den AVR übertragen werden müssen. Es sind Strings und hauptsächlich Zeit 
Werte in 100ms Schritten.

Jetzt zur eigentlichen Frage:
Wie würdet ihr vorgehen?
- Im AVR über eine Schleife die Setup Parameter in die VAriablen laden?
- Oder Setup Parameter in einen RAM Bereich laden, um dann den Variablen 
den RAM Bereich zuzuordnen.

Bei Stromausfall sind diese Werte dann noch in EEPROM zu sichern.

Wie macht man so was effizient?
#1826419
Lesenswert?
• ▲
▼
Mr Kaktus schrieb:
> Es sind Strings und hauptsächlich Zeit
> Werte in 100ms Schritten.
warum sollte man Strings konfigurieren wollen, wenn sowiso ein 
PC-Programm die Auswertung macht?

>
> Jetzt zur eigentlichen Frage:
> Wie würdet ihr vorgehen?
> - Im AVR über eine Schleife die Setup Parameter in die VAriablen laden?
> - Oder Setup Parameter in einen RAM Bereich laden, um dann den Variablen
> den RAM Bereich zuzuordnen.
Kannst du mir mal kurz den Unterschied zwischen einer Variable und einem 
Ram-Bereich erklären?



Ich versteh das Problem nicht.
PC sendet Kommando mit neuen Parameter und AVR schreibt geänderte Werte 
in EEPROM.
Was gibts da großartig drüber nachzudenken?

Das einzige, was man sich üerlegen müsste, wär, ob man den Parametersatz 
als ganzes in einem Kommando überträgt oder für jeden Parameter ein 
eigenes Kommando oder irgendwas dazwischen.
Gast #1826447
Lesenswert?
• ▲
▼
PC und Board sollten die gleichen Infos haben. Auf
dem Board hast du die bereits im EEProm.
Daher würde ich auf dem PC beim Starten (bzw. auf Befehl)
diese Daten lesen (als ein Block, d.h. alle hintereinander).
Wenn am PC was geändert wird wird dieser Wert (als Einzelwert)
an das Board übertragen.

avr
#1826523
Lesenswert?
• ▲
▼
Und mach die EEP-Write-Routine so, dass sie vor dem Schreiben den alten 
Inhalt prüft und bei Gleichheit auf das Schreiben verzichtet. Das erhöht 
die Lebensdauer des EEP, da viele Schreibzyklen unterdrückt werden. 
Somit kannst Du auch (ungestraft) den gesamten Datenblock neu schreiben, 
auch wenn sich nur 1 Bit verändert hat. Es wird dann eben nur das Byte 
mit dem veränderten Bit neu geschrieben.

AVRs sind nicht überaus üppig mit RAM ausgestattet. Daher kann es 
(besonders bei kleinen AVRs mit wenig SRAM) sinnvoll sein, die Parameter 
beim Reset nicht ins RAM zu kopieren, sondern dann wenn sie gebraucht 
werden direkt aus dem EEP zu holen.

MfG

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.