Attention ! Fermeture imminente du forum d’Elektor (pour en savoir plus, cliquer ici). À partir du vendredi 1er mars il ne sera plus possible de s’identifier sur ce forum, mais son contenu restera disponible en lecture seule jusqu’à la fin du mois. Le 1er avril, il sera fermé définitivement.

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