blob: 4abaf6bdaf2db4006558e7db42b22686fc1e4750 [file] [log] [blame]
#include "board.h"
#include "spi.h"
#include "pio.h"
#include "pmc.h"
#include "usart.h"
#define BUFFER_SIZE 20
/** Pins to configure for the application.*/
const Pin pins[] = { BOARD_PIN_USART_RXD,
BOARD_PIN_USART_TXD
// PIN_USART1_SCK,
// BOARD_PIN_USART_RTS,
// BOARD_PIN_USART_CTS,
// PINS_SPI,
// PIN_SPI_NPCS0_PA11
};
char Buffer[BUFFER_SIZE] = "Hello World";
/**
* \brief Configures USART in synchronous mode,8N1
* * \param mode 1 for master, 0 for slave
* */
static void _ConfigureUsart(uint32_t freq )
{
uint32_t mode;
/* MASTER; mode = US_MR_USART_MODE_NORMAL
| US_MR_USCLKS_MCK
| US_MR_CHMODE_NORMAL
| US_MR_CLKO
| US_MR_SYNC // FIXME: sync or not sync?
| US_MR_MSBF
| US_MR_CHRL_8_BIT
| US_MR_NBSTOP_1_BIT
| US_MR_PAR_NO ;
*/
// Slave mode:
mode = US_MR_USART_MODE_NORMAL
// | US_MR_USCLKS_SCK // we don't have serial clock, do we?
| US_MR_CHMODE_NORMAL
// | US_MR_SYNC
| US_MR_MSBF
| US_MR_CHRL_8_BIT
| US_MR_NBSTOP_1_BIT
| US_MR_PAR_NO;
/* Enable the peripheral clock in the PMC */
PMC_EnablePeripheral( BOARD_ID_USART ) ;
/* Configure the USART in the desired mode @USART_SPI_CLK bauds*/
USART_Configure( BOARD_USART_BASE, mode, freq, BOARD_MCK ) ;
/* enable USART1 interrupt */
// NVIC_EnableIRQ( USART1_IRQn ) ;
/* Enable receiver & transmitter */
USART_SetTransmitterEnabled( BOARD_USART_BASE, 1 ) ;
USART_SetReceiverEnabled( BOARD_USART_BASE, 1 ) ;
}
int main() {
/* Configure pins */
PIO_Configure( pins, PIO_LISTSIZE( pins ) ) ;
_ConfigureUsart( 1000000UL);
USART_WriteBuffer(BOARD_USART_BASE, Buffer, BUFFER_SIZE);
// FIXME: do we need to call USARTEnable?
// FIXME: do we need to call USARTDisable?
return 0;
}