www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Vorgehensweise Setup in den AVR bringen?


Autor: Mr. Kaktus (kaktus-)
Datum:

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

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Parameter sind sowieso im EEPROM des Controllers. Da werden sie beim 
power up her geladen. wahlweise kann amn diese Parameter vom PC her 
aendern.

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

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

Autor: Mr. Kaktus (kaktus-)
Datum:

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

Genau darum geht es.

Autor: avr (Gast)
Datum:

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

Autor: Mr. Kaktus (kaktus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guter Vorschlag!

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

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

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.