Gast
#2074425
Hier mal ein Auszug aus meinem Programm, die Überschrift sagt ja fast
alles.
Sehe einfach den Fehler nicht!
Benutze einen ATmega128
Kann mir jemand kurzfristig helfen?
/***********************************************************************
**
Function: uart_getc_wait()
Purpose:
Input:
Returns:
************************************************************************
**/
uint8_t uart_getc_wait()
{
unsigned int c;
do {
c = uart_getc();
} while( c == UART_NO_DATA );
return (uint8_t)c;
}
/***********************************************************************
**
Function: void uart_gets()
Purpose: get string from UART0
Input:
Returns: none
************************************************************************
**/
void uart_gets( char* Buffer, uint8_t MaxLen )
{
uint8_t NextChar;
uint8_t StringLen = 0;
NextChar = uart_getc_wait(); // Warte auf und empfange das
nächste Zeichen
// Sammle solange Zeichen, bis:
// * entweder das String Ende Zeichen
kam
// * oder das aufnehmende Array voll
ist
while( NextChar != '^' && StringLen < MaxLen - 1 ) {
*Buffer++ = NextChar;
StringLen++;
NextChar = uart_getc_wait();
}
// Noch ein '\0' anhängen um einen
Standard
// C-String daraus zu machen
*Buffer = '\0';
}
/***********************************************************************
**
Function: uart1_getc_wait()
Purpose:
Input:
Returns:
************************************************************************
**/
uint8_t uart1_getc_wait()
{
unsigned int d;
do {
d = uart1_getc();
} while( d == UART_NO_DATA );
return (uint8_t)d;
}
/***********************************************************************
**
Function: void uart1_gets()
Purpose: get string from UART0
Input:
Returns: none
************************************************************************
**/
void uart1_gets( char* Buffer, uint8_t MaxLen )
{
uint8_t NextChar;
uint8_t StringLen = 0;
NextChar = uart1_getc_wait(); // Warte auf und empfange das
nächste Zeichen
// Sammle solange Zeichen, bis:
// * entweder das String Ende Zeichen
kam
// * oder das aufnehmende Array voll
ist
while( NextChar != '^' && StringLen < MaxLen - 1 ) {
*Buffer++ = NextChar;
StringLen++;
NextChar = uart1_getc_wait();
}
// Noch ein '\0' anhängen um einen
Standard
// C-String daraus zu machen
*Buffer = '\0';
}
#endif