www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2051er Serial Terminal


Autor: Jankey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also hab ein Terminalprogramm für den 2051er, Quarz: 11,0592Mhz

Init Code:
void Init_Serial()
{
EA = 0;

TI = 0;        /* clear transmit interrupt */
TR1 = 0;         /* stop timer 1 */
ET1 = 0;         /* disable timer 1 interrupt */
//  PCON |= 0x80;    /* 0x80=SMOD: set serial baudrate TMOD &= ~0xF0; 
/*
clear timer 1 mode bits */
TMOD |= 0x20;    /* put timer 1 into MODE 2 */
TH1 = 0xFD;      // FD°

TR1 = 1;         /* start timer 1 */
EA = 1;           /* Enable Interrupts */

SM0 = 0;
SM1 = 1;          /* serial port MODE 1 */
SM2 = 0;
REN = 1;         /* enable serial receiver*/

TI = 0;        /* clear transmit interrupt */
RI = 0;        /* clear receiver interrupt */

ES = 1;        /* enable serial interrupts */
EA = 1;           /* Enable Interrupts */
}

void Send_Serial(unsigned char value)
{
SBUF = value;
SCON &= 0xFD;    // Byte Zurück Senden
}


void Comm_Serial() interrupt 4
{
if (TI != 0)    /* Received data interrupt */
{
TI = 0;
return;
}

if (RI != 0)    /* Received data interrupt */
{
RI = 0;
Send_Serial( SBUF );
}

SCON &= 0xFC;          // Clear S0 of IRF
}


So kann mir jedmand erklären warum das ding nicht Sauber das
zurückschickt was es empfängt???

0xFD sollte doch für 11,059 passen ...

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"0xFD sollte doch für 11,059 passen ..."

Weiß ich nicht, warum läßt Du das nicht den Compiler ausrechnen ?

TH1 = -(unsigned char)(XTAL  BAUD  12 / 16 + 0.5);


Das SCON hat in den Interrupts nichts zu suchen, das wird nur einmal
beim Init gesetzt und dann in Ruhe gelassen.

Ich nehme mal an, die UART spielt verrückt, wenn man ihr mitten im
Senden oder Empfangen die Modi durcheinander bringt.


Peter

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.