mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel T89C51CC01 Ansteuerung des Comport


Autor: Bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen!

Versuche für ein Schulprojekt einen Atmel T89C51CC01 mit der Software
µ-Vison und Borland C++ zu programieren. Leider bekonnte ich die
Verbindung über den Comportbis jetzt nicht herstellen. Die SIO.H habe
ich bis jetzt so angepasst:

void init(void){
PCON = 0x80;
SCON = 0x52;
TMOD = 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 0xed; /* TH1: reload value for 4800 baud (vorher:f4) */
TR1 = 1; /* TR1: timer 1 run */
return;
}

Im Hauptprogramm versuche ich dann mit dem Befehl ->
printf("A"); über den Comport den Buchstaben "A" zu übertragen.
Leider hängt sich der Controller dann immer auf und arbeitet das
restliche nicht mehr ab.

Wo kann es dran liegen???

Bin über jeden Tip Dankbar!!!

freundliche Grüsse
  Bob

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TI = 1;


Peter

Autor: Bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Peter!

Es fängt langsam an zu laufen. Leider überträgt er nur ein 'Herz'
statt den Buchstaben 'A'. Bautrate denn richtig eingestellt???

Grüsse Bob

Autor: Arthur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bob,

hast Du auch den Reloadwert in TL1 eingetragen ?
Stimmt deine Baudrate, sie ist abhängig von der
CPU-Frequenz.

Beispiel:
void init(void){
PCON = 0x80;
SCON = 0x52;
TMOD = 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 0xed; /* TH1: reload value for 4800 baud (vorher:f4) */
TL1 = 0xed;
TR1 = 1; /* TR1: timer 1 run */
    .
    .
RI = 0;  // Empfängerinterrupt löschen
TI = 0;  // Sendeinterrupt löschen
ES = 1;  // Serialinterrupt freigeben
EA = 1;  // global interrupt
}

Beim senden:

SBUF = 0x41;     // Zeichen A
while(TI==0);    // Warten bis neues Zeichen gesendet
TI = 0;          // Sendeinterrupt löschen

Gruß,
Arthur

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.