www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit Zeicheneinlesen(ATmega88)


Autor: Maddin Sche (schrank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Meine C-Kenntnisse sind leider schon etwas eingerostet und bitte euch 
daher um Hilfe:

Programmiere gerade einen Atmega88 und will eine simple Zeichenabfrage 
programmieren:

Programm verlangt nach Eingabe und gibt die eingegebene Zahl dann wieder 
aus....
Das dürfte doch so aussehn :

      COMinit_void();// initialisiert Schnittstelle


        int anzahl;

      printf ("\nBitte eine Integer-Zahl eingeben : ");
      scanf ("%d",&anzahl);

      printf ("\n\nSie gaben %d ein\n",anzahl);

Hinweis:
Ich verwende einen FT232 der mir einen Com-Port am PC emuliert. 
Angeschlossen ist das ganze über USB. Mittels Terminal empfange/sende 
ich die Daten. Momentan bekomme ich nur "Bitte eine Integer-Zahl 
eingeben" als Endlosschleife zurück, Eingaben werden ignoriert. 
COMinit_void() initialisiert die Schnittstelle, hier stehen auch die 
Funktionen getchar und putschar drin. Die Initialisierung dürfte klappen 
(ist nicht von mir sondern von nem erfahrenen Programmierer).Hab mit 
Oszi auch schon gemessen, ob Daten am Controller ankommen,was der Fall 
ist.

Kann mir bitte jemand weiterhelfen?

Vielen Dank!!
ML

Autor: Matt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Überprüfe, ob COMinit_void() auch den Empfangsteil des UART aktiviert.

Vergleiche:
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: Maddin Sche (schrank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja ist aktiviert, habs auch nochmal überprüft!
Was mich auch etwas stutzig macht ist die Tatsache, dass das Senden nach 
dem Befehl scanf nicht aufhört und er auf keine Eingabe wartet...
Ich kanns mir nicht erklären...:(

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Momentan bekomme ich nur "Bitte eine Integer-Zahl
>eingeben" als Endlosschleife zurück

Dann macht der uC bei scanf() vermutlich ne Bauchlandung
und startet neu.

Autor: Maddin Sche (schrank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie würdet ihr denn diese Aufgabe lösen?
Ich komm da einfach nicht weiter..


Vielen Dank!

Autor: Analog (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RX-Interrupt.

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.