mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik seriell daten an den pc


Autor: Roland Mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo..
ich möchte seriell an den pc daten senden ich benutze einen AT89C2051
(mit 11,0592MHz) der ist über einen max232 mit dem pc verbunden
zum programmieren verwende ich µvision2 von keil (demo version)
im ordner exampels habe ich eine datei namens "hello.c" gefunden
ich habe #include <AT892051.H> eingefügt, und den wert TH1
ausgerechnet.


#include <AT892051.H>
#include <stdio.h>       /* prototype declarations for I/O functions*/
#ifdef MONITOR51         /* Debugging with Monitor-51 needs   */
char code reserve [3] at 0x23;/* space for serial interrupt if*/
#endif                   /* Stop Exection with Serial Intr.   */
                         /* is enabled                        */
void main (void) {
#ifndef MONITOR51
    SCON  = 0x50;  /* SCON: mode 1, 8-bit UART, enable rcvr */
    TMOD |= 0x20;        /* TMOD: timer 1, mode 2, 8-bit reload   */
    TH1   = 208;        /* TH1:  1200 baud bei 11,0592MHz   */
    TR1   = 1;          /* TR1:  timer 1 run                     */
    TI    = 1;          /* TI:   set TI to send first char of UART*/
#endif
    while (1) {
    P1 ^= 0x01;       /* Toggle P1.0 each time we print */
    printf ("Hello World\n");/* Print "Hello World" */
  }
}



mit diesem programm bekomme ich aber kein zeichen in hyperterminal zu
sehen, und P1.0 toggelt auch nicht
nur wenn ich das programm mit µvusion simuliere dann toggelt P1.0
andere programme (z.B blinklicht,lauflicht) haben mit der schaltung
schon funktioniert.
kann mir da jemand weiterhelfen?

mfg
Roland

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du kannst auf jeden fall mal einen serial monitor dazwischenschlaten,
der die serielle schnittstelle abhört, dann siehst du schon mal ob
überhaupt etwas kommt.

Autor: ERDI - Soft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du den MAX richtig am µController und an der seriellen Buchse
angeschlossen? Benutzt du das richtige Kabel?

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kenn den µC net hab nen AT89s5282 und da muss man die Interupts
freigeben, und dass toggeln eines LCD an P1.0 geht schon, bloss so
schnell dass du des net sehen kannst.

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am SImulator ist das natürlich dann sichtbar.

Autor: Roland Mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo..

ich hab gerade die verbindung vom atmel zum max232 und vom max232 bis
zum pc geprüft da müßte alles passen.
selbst wenn die verbindung nicht okay sein solte muß dan nicht P1.0
trotzdem toggeln?

Autor: Eugen Mailaender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

anstatt TI = 1 zu setzen musst du TI=0; machen.
Die putchar() Funktion wartet bis TI == 0 ist und sendet erst dann das
Zeichen aus. Ich habe diese Funktion so umgebaut, dass immer zuerst das
Zeichen gesendet wird und dann wird solange gewartet, bis das Zeichen
den Buffer verlassen hat.

Versuchs mal,

Gruss
Eugen

Autor: Roland Mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich hab jetzt noch ne verzögerung eingebaut und zum testen mal die
zeile mit printf rausgenommen dann hat P1.0 getoggelt aber sobald ich
printf wieder mit rein nehme tut sich am P1.0 nix mehr ich habe TI auch
mal auf 0 gestellt hat aber auch nix gebracht.

mfg
Roland

Autor: Roland Mayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jetzt habe ich "scon = 0x40" und "TH1=232" eingestellt in
hyperterminal saust jetzt der cursor über den bildschirm und zeigt
wilde zeichen an zwischen den zeichen sieht man ab an zu Hello World
stehen
was könnte da noch faul sein?

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.