A.R.M & USART

Postby Guest » Wed May 30, 2007 12:00 am

Bonjour,
Petit probléme de communication avec le E-blocks A.R.M, je veux me servir des fonction de la bibliotheque, pour
communiquée en RS232, mais le programme reste bloqué sur l'envoi de la donnée, ci quelqu'un a déja reussi pourrait'il regarder dans mon programme, l'oubli ... que je n'arrive pas a voir. Je ne veux me servir que de la Broche TX & RX seulement.



#include "Board.h"

#define BaudRate 38400 /* Baud Rate */

#define BRD (MCK/16/BaudRate) /* Baud Rate Divisor */

// AT91S_USART * pUSART = AT91C_BASE_US1; /* Global Pointer to USART1 */


void uart_init (void) { /* Initialize Serial Interface */

AT91F_US_Configure (
AT91C_BASE_US1, // \arg pointer to a USART controller
MCK, // \arg peripheral clock
AT91C_US_ASYNC_MODE , // \arg mode Register to be programmed
BaudRate, // \arg baudrate to be programmed
10 ); // \arg timeguard to be programmed

}


void uart_putc(int ch)
{
while( !AT91F_US_TxReady (AT91C_BASE_US1)){}; // Attente Buffet VIDE

AT91F_US_PutChar (AT91C_BASE_US1,ch); // Transmition du Caractere
}


int main(void)
{
unsigned int i;

uart_init ();


/* Set all of PORTA as an output */
AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, PORTA ) ;
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, PORTA);


while ( 1 )
{
/* Set pin 0 of PORTA high */
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, PORTA0);
for ( i = 0 ; i < 650000 ; i = i + 1 ) ;

uart_putc('A') ;

/* Set pin 0 of PORTA low */
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, PORTA0);
for ( i = 0 ; i < 650000 ; i = i + 1 ) ;
}
}

Coordialement
Guest
 

Return to E-blocks

Who is online

Users browsing this forum: No registered users and 1 guest