Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "AT91SAM9263.h"
- void dbgu_print_ascii(const char *Buffer){
- int i = 0;
- while ( Buffer[i]) {
- while ( !(AT91C_BASE_DBGU->DBGU_CSR & (AT91C_US_TXRDY) ) ){};
- AT91C_BASE_DBGU->DBGU_THR = Buffer[i];
- i++;
- }
- }
- void dbgu_read_ascii (char *Buffer){
- while ( !(AT91C_BASE_DBGU->DBGU_CSR & (AT91C_US_RXRDY)) ){};
- *Buffer = AT91C_BASE_DBGU->DBGU_RHR;
- if (*Buffer == 0x0D){
- *Buffer = 0x0D;
- *(Buffer+1) = 0x0A;
- *(Buffer+2) = '\0';
- }
- else { *(Buffer+1) = '\0';}
- }
- static void Open_DBGU (void){
- //Wyłącz przerwania od portu DBGU
- AT91C_BASE_DBGU->DBGU_IDR = 0xFFFFFFFF;
- //Resetuj i wyłącz odbiornik
- AT91C_BASE_DBGU->DBGU_CR = (AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS);
- //Konfiguracja portów wejścia-wyjścia jako porty RxD i TxD DBGU
- AT91C_BASE_PIOC->PIO_ASR = (1<<30 | 1<<31);
- AT91C_BASE_PIOC->PIO_PDR = (1<<30 | 1<<31);
- //Konfiguracja szybkości transmisji portu szeregowego
- AT91C_BASE_DBGU->DBGU_BRGR = 651;
- //Konfiguracja trybu pracy, tryb normalny bez przystości (8N1)
- AT91C_BASE_DBGU->DBGU_MR = (AT91C_US_CHMODE_NORMAL | AT91C_US_PAR_NONE);
- //Włącz odbiornik
- AT91C_BASE_DBGU->DBGU_CR = (AT91C_US_RXEN | AT91C_US_TXEN);
- }
- int main(void){
- char Tekst[1];
- Open_DBGU();
- dbgu_print_ascii("123456789-123456789-123456789-123456789-123456789 \n");
- while (1){
- dbgu_read_ascii(Tekst);
- dbgu_print_ascii(&Tekst);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement