Gast
#32328
Funktioniert das Programm so zum Testen von Empfänger und Sender beim
UART (8515) ?
Programm hat 0 Fehler, jedoch leider wird im Terminal nicht das
ausgegeben was ausgegeben werden sollte.
Würde gerne wissen ob der Code s stimmen würde ?
Bzw. kann mir wer einen Code posten (in c geschrieben nicht in
assembler) zum testen vom UART ?
mfg
/***************************** INCLUDES
************************************/
#include <90s8515.h>
/***************************** DEFINITIONEN
********************************/
/* UCR Bit Definitionen */
#define RXEN 4
#define TXEN 3
#define UDRIE 5
/* USR Bit Definitionen */
#define RXC 7
#define UDRE 5
/***************************** Funktionen
***********************************/
/* UART initialisieren */
void InitUART(unsigned char baudrate)
{
/* baudrate setzen */
UBRR = baudrate;
/* Sender, Empfänger und Daten Register leer Interrupt freigeben */
UCR = ((1 << RXEN) | (1 << TXEN) | (1 << UDRIE));
}
/* Empfange ein Byte vom UART */
unsigned char ReceiveByte(void)
{
/* Warte, bis das die zu empfnagenden Daten übermittelt sind */
while (!(USR & (1 << RXC)));
/* und gib sie dann zurück */
return UDR;
}
/* Sende ein Byte über den UART */
void TransmitByte(unsigned char data)
{
/* Warte solange, bis das Daten Register leer ist */
while (!(USR & (1 << UDRE)));
/* und schreibe danach die neuen Daten hinein */
UDR = data;
}
/**************************** HAUPTPROGRAMM
**********************************/
void main(void)
{
/* Initialisiere UART bei 4MHZ Taktfrequenz und 9600 Baud */
InitUART(25);
while (1)
{
TransmitByte('A');
}
}