www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik vom PC an den MC senden


Autor: Stefanus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich arbeite mich seit einiger zeit in die AVR Programmierung mit C ein.
Dabei orientiere ich mich im wesentlichen an dem Tutorial
von Christian Schifferle
(http://www.mypage.bluewin.ch/ch_schifferle/Atmel.zip). Komme recht gut
voran. Allerdings schaff ich es einfach
nicht vom PC aus Zeichen über die serielle Schnittstelle an den uart
des Microcontrollers zu schicken. Die umgekehrte Richtung
funktioniert tadellos.
Mein Traum wäre es eine Zahl zwischen 1 und 8 in meinem PC
Terminalprogramm einzugeben woraufhin eine LED an dem entsprechenden
Portpin aufleuchtet.

ich benutze:
- den at90S2313
- einen max232 für die Pegelanpassung
- hyperterm und brayterm zum senden


irgendwelche ideen? stark dankbar wär ich auch für ein stückchen
Beispielcode, den ihr schon ausprobiert habt und bei dem ich mir sicher

sein kann das er auch wirklich funzt (vorteilhaft wäre C Code)

Stefan

Autor: Santa Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist keine schwierige Aufgabe.

Du mußt...

- das Bit RXEN im UART-Konfigurationsregister setzen;
  das schaltet den UART-Receiver ein

- das Bit RXCIE im UART-Konfigurationsregister setzen;
  das gibt den zugehörigen Interrupt ("UART receive complete
  interrupt") frei.

- in die Interrupt-Einsprungtabelle am Anfang des Programms
  schreibst Du einen entsprechenden Eintrag
  ("rjmp UARTReceiveComplete")

- und zu guter letzt schreibst Du den UARTReceiveComplete-
  Interrupthandler.  Im wesentlichen besteht der bei Deinen
  Anforderungen darin, das im UDR-Register wartende empfangene
  Byte auszulesen mittels "in r16, UDR", und es sogleich auf
  einen Port Deiner Wahl zu schicken mittels "out PORTB, r16".
  Dein Interrupthandler sähe also (in Assemblercode) im
  wesentlichen so aus:

UARTReceiveComplete:
  push r16
  in r16, SREG
  push r16

  in r16, UDR
  out PORTB, r16

  pop r16
  out SREG, r16
  pop r16

  reti

Kannst Du damit was anfangen?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

schau mal ins Wiki. Im Wiki wurde eine neure Version des GCC Tutorials
erstellt.

Mfg

Dirk

Autor: Stefanus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke euch,

hab mir eure Vorschläge mal zu gemüte geführt:

leider kann ich mit deinem Assembler Code nicht allzuviel anfangen. Die
in deinen Stichpunkten beschriebenen
Codebestandteile sind jedoch alle in meinem C Programm enthalten. Wie
gesagt verwende ich einen Beispielcode von
Christian Schifferle.

Das von Dirk empfohlene Tutorial ist anscheinend eine neuere Version
des von mir verwendeten Dokuments. Allerdings ist
jetzt nur noch ein Kapitel "uart - teil 1" enthalten, das sich mit
dem senden vom uart an den pc beschäftigt. Das zweite
Beispiel, das behandelt, wie man ein vom PC empfangenes Zeichen mit dem
AVR weiterverarbeitet (portpins setzen/zurücksenden/...)
ist nicht mehr enthalten. War da ein Fehler drin über den ich bei mir
auch stolpere, oder ist das nur eine aktualisierungslücke?


Simon

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.