mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Umprogrammierung eines AVR


Autor: Kay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe an meinem AVR 3 Taster und 3 Led´s angeschlossen. Funktioniert
auch alles einwandfrei. Nun zu meiner Frage. Wenn ich jetzt z.B. will,
das er wenn ich Taste 1 drücke, die led1 einschaltet. Wenn ich Taste 2
drücke soll er Led2 leuchten lassen usw. Soweit ist auch alles klar.
Jetzt möchte ich eine Software schreiben, mit der ich über die serielle
schnittstelle diese Programmierung ändern kann. Wie mache ich das am
besten. also über die serielle schicke ich dann an den AVR : "Wenn
Taste 1 dann Led2" "Wenn Taste 2 dann Led3" usw. ab dann soll diese
programmierung gelten. also ich will nicht jedesmal den AVR mit
PonyProg brennen. Ich hoffe ich habe mich nicht zu undeutlich
ausgedrückt. Vielleicht kann mir ja jemand helfen.

mfg Kay

Autor: Malte Marwedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Zauberwort nennt sich "Bootloader". Funktioniert aber nicht bei
den gewöhnlichen AT90S (da geht es 100% nicht) sondern nur bei der
ATMEGA Serie.

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht meinst Du auch das du Kommandos über Hyperterm gibst und der
µP sie auswertet und entsprechend reagiert.

Autor: Kay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

also das was frankl schrieb, klingt eher nach dem, nach dem ich suche.
also ich will über hyperterm den Befehl "Taste1 = Led1" senden. wenn
ich dann taste1 drücke, dann soll Led1 angehen. Wenn ich wieder über
hyperterm "Taste1 = Led2" sende, dann soll in Zukunft wenn ich Tast1
drücke die Led2 angehen. solange bis ich wieder einen anderen befehl
sende

Autor: Malte Marwedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, so meinst du das. Das geht mit jedem AVR, der einen UART hat.
Wie wäre es, wenn du eine Endlosschleife nimmst, die bei jedem
Durchgang nachsieht ob ein neues Zeichen im UART eingetroffen ist. Wenn
dies der Fall ist wird das Zeichen aus dem UART ausgelesen und je nach
Wert entsprechend reagiert, z.B. ein Unterprogramm aufgerufen, welches
dann die einzelnen LEDs an oder aus schalten kann.

Autor: miwitt001 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würd das einfach so machen: du sendest an den MC einen String mit
der Länge 3. Die erste Zahl sagt dann welche LED bei Taster 1 leuchtet
usw.

Bsp:
String : 312
Taster1: LED3
Taster2: LED1
Taster3: LED2

Man könnte das ganz noch kleiner machen, indem man statt den 3 Zahlen
nur ein Byte nimmt und jede Zahl (die ja nur zw 1 und 3 sein kann) mit
2 Bits codiert und halt dann noch mit Nullen auffüllt oder so. Dann
wäre obiges Bsp auf das verkürzt:
00110110 = 0x36

Das schreibst du in ne Variable x und im Programm dann eine (hier
Pseudo-c-)Funktion die aufgerufen wird, wenn man Taster 1 drückt:

switch(x & 0x30) //Taster 1
{
case 1:
           LED1 an/aus
break;
case 2:
           LED2 an/aus
break;
case 3:
           LED3 an/aus
break;
};

Hoffe mal du weißt was ich meine.

mfg Michael

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ergänzung zu Malte:
siehe AVR-Tutorial-6. Das UART

Gruß,
Stefan

Autor: Andreas Auer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wenn die Werte nach einer Unterbrechung der Spannungsversorgung auch
genauso weiterverwendet werden sollen, würd ich das ganze noch ins
EEPROM schreiben.
Dann müsstest also bei neuen Werten für die Taster, die Werte sofort
ins EEPROM schreiben. Wenn nun ein Taster gedrückt wird, liest du nur
den entsprechenden Wert aus dem EEPROM und schaltest dann die richtige
LED ein.

mfg
Andreas

--
Andreas Auer             aauer1 (at) sbox.tugraz.at
Student of Telematics    http://home.pages.at/aauer1
Graz, University of Technology

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Wenn nun ein Taster gedrückt wird, liest du nur
den entsprechenden Wert aus dem EEPROM und schaltest dann die richtige
LED ein."

beim startup ins ram/register kopieren. geht schneller und einfacher

Autor: Kay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Andreas,

das was Du geschrieben hast ist das was ich suche. vielen dank

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.