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
hallo jason, ich würde die ausgabe ohne interrupt aber dafür mit dem pdc ausführen. gruss gerhard
Hallo Gerhard, danke für den Hinweis! Kennst du vielleicht einige Beispiele, die zeigen wie der PDC im C Code implementiert wird? Jason
hallo jason, im sog. software package solltest du fündig werden: http://www.atmel.com/dyn/resources/prod_documents/at91sam7s-ek.zip gruss gerhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.