Gast
#1104706
Hallo,
weiß jemand vielleicht wie man für den AT91SAM7S einen USART TXRDY
Interrupt einrichtet?
Bis jetzt habe ich es so gemacht, dass ich immer die uart0_puts Funktion
innerhalb der while(1)-Schleife der main.c aufgerufen habe.
Wie könnte man die uart0_puts Funktion interrupt gesteuert
implementieren?
//UART Ausgabe Funktionen
int uart0_putc(int ch) //Character über UART ausgeben.
{
while (!(USART_pt ->US_CSR & AT91C_US_TXRDY)); /* Wait for Empty Tx
Buffer, a character is in the US_THR waiting to be transferred to the
Transmit Shift Register. */
return (USART_pt ->US_THR = ch); /* Transmit
Character, Transmit Holding Register */
}
int uart0_putchar (int ch) { /* Write Character to
Serial Port */
// if (ch == '\n')
// { /* Check for LF */
// uart0_putc( '\r' ); /* Output CR */
// }
return uart0_putc( ch ); /* Transmit Character
*/
}
int uart0_puts ( char* s ) // String über UART ausgeben.
{
while ( *s ) // so lange *s != '0' also ungleich dem
"String Endzeichen"
{
uart0_putchar( *s++ ); // Inkrementiere zunaechst den Pointer
und gebe danach den Inhalt aus, auf den der Pointer zeigt.
}
return 0;
}
Vielleicht hat jemand einen Tipp für mich! Danke im voraus!
Jason