www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega + Pollingbetrieb mit 16C554


Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche einen TL16C554 im Pollingmodus zu betreiben.
Es sollen nur Daten gelesen werden 8bit,noparity,1stopbit.
Leider werden nur einige Zeichen eingelsen und dann merkwürdigerweise 
das line control register gelöscht.
Kennt sich jemand aus?

Hyperterminalauszug:

Vor dem Reset:

 Receiver buffer: 00010101 IER: 00000000 IIR: 00000001 LCR: 00000000 
MCR: 00000000 LSR: 11100001 MSR: 11110000 SP: 00000000
A0/A1/A2:111 IOW/IOR:10 RESET/RXRDY/TXRDY:000 CSA/CSB/CSC/CSD:0111

Nach dem Reset und der Initialisierung:

LSB: 00011000 MSB: 00000000
Receiver buffer: 00000000 IER: 00000000 IIR: 11000001 LCR: 00000011 MCR: 
00000000 LSR: 01100011 MSR: 11110000 SP: 00000000
A0/A1/A2:111 IOW/IOR:10 RESET/RXRDY/TXRDY:000 CSA/CSB/CSC/CSD:0111

Ausgabe im günstigsten Fall mit Abbruch, da line control register 
merkwürdigerweise gelöscht:

GGPRMC,153335,V$______

Receiver buffer: 00001001 IER: 00000000 IIR: 00000001 LCR: 00000000 MCR: 
00000000 LSR: 11100001 MSR: 11110000 SP: 00000000
A0/A1/A2:111 IOW/IOR:10 RESET/RXRDY/TXRDY:000 CSA/CSB/CSC/CSD:0111

Codeauszug:

DDRA  = 0x00;                  // 0000 0000 -> D7D6D5D4D3D2D1D0 eingänge
PORTA = 0xff;                  // 1111 1111 -> D7D6D5D4D3D2D1D0 mit 
pullups
PORTC &= ~( 1 << PC4 );        // xxx0 xxxx -> IOR = 0  ->> lesen vom 
tl16c554

i=0;
j=0;
while(1) {
  PORTB = 0x05;     //line status register

  if (PINA & 1) {      // prüfe auf LSR bit0 (dataready)

  PORTB = 0x00;     // 0000 0000 A2A1A0=000 Receiver Buffer
  puffer2[i]=PINA;
  i=i+1;
  }
j=j+1;
if (i>80) break;
if (j>150) break;
}
uart_puts(puffer2);

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.