ATmega + Pollingbetrieb mit 16C554

Gast #440746
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.