Version [75297]
Dies ist eine alte Version von ReadStatus erstellt von FabianEndres am 2017-01-01 21:18:02.
ReadStatus
Syntax:
int ReadStatus(unsigned char* pvalue);
Beschreibung:
Die Funktion liest das Statusregister des USART-Bausteins 8251 aus. Das Statusregister ist wie folgt aufgebaut:
Bit-Nummer | Bit-Bezeichnung | Erklärung |
---|---|---|
0 | TxRDY | signalisiert Bereitschaft zur (Sende-) Datenübernahme |
1 | RxRDY | zeigt das Ende des Empfangsvorgangs an |
2 | TxEMPTY | zeigt das Ende des Sendevorgangs an |
3 | PE | Parity Error |
4 | OE | Overrun Error |
5 | FE | Framing Error |
6 | BD | signalisiert die Erkennung eines “BREAK” Zeichens |
7 | DSR | Zustand der Handshake-Leitung DSR |
Parameter:
pvalue | Pointer auf unsigned char Variable, in der das gelesene Byte abgelegt werden soll |
Rückgabewert:
Rückgabe | Bedeutung |
0 | OK |
1 | Fehler |
Beispiel:
unsigned char value=0;
if( ! OpenPLXDevice())
{
Init8251(9600,0,8);
warten bis 8251 bereit zur Datenübernahme ist
do{
ReadStatus(&value);
}while(!(value&0x01));
// Zeichen c senden
TransmitByte('c');
// warten bis der Sendevorgang beendet ist
do{
ReadStatus(&value);
}while(!(value&0x04));
printf("Byte gesendet!\n");
// warten bis ein Byte empfangen wurde
do{
ReadStatus(&value);
}while(!(value&0x02));
empfangenes Byte auslesen und anzeigen
ReceiveByte(&value);
printf("empfangener Wert: %x\n",value);
ClosePLXDevice();
}else
printf("Fehler");