#include "lpc11xx_ssp.h"
// ***********************************************************************
// SPI testing - 2013oct18
// ***********************************************************************
void testSpi()
{
// Max buffer length
#define BUFFER_SIZE 0x40
// Tx buffer
int Tx_Buf[BUFFER_SIZE];
// Rx buffer
int Rx_Buf[BUFFER_SIZE];
// SSP Configuration structure variable
SSP_CFG_Type SSP_ConfigStruct;
// 1. Enable SSP0 block clock
SYSCON_AHBPeriphClockCmd(SYSCON_AHBPeriph_SSP0, ENABLE);
// 2. Assign P2.11 as SCK0, enable SSEL
SSP_SSP0PinsInit(SCK0_PIO2_11, ENABLE);
// 3.1 Initialize SSP configuration structure to default
SSP_ConfigStructInit(&SSP_ConfigStruct);
// 3.2 Initialize SSP peripheral with parameter given in structure above
SSP_Init(LPC_SSP0, &SSP_ConfigStruct);
// 4. Enable SSP peripheral
SSP_Cmd(LPC_SSP0, ENABLE);
// 5. Initialize buffers
return 1;
// Private functions
void Buffer_Init(void)
{
int i;
for (i = 0; i < BUFFER_SIZE; i++)
{
Tx_Buf[i] = i;
Rx_Buf[i] = 0;
}
}
void Error_Loop(void)
{
/* Loop forever */
while (1);
}
int Buffer_Verify(void)
{
int i;
int *src_addr = (int *) &Tx_Buf[0];
int *dest_addr = (int *) &Rx_Buf[0];
for ( i = 0; i < BUFFER_SIZE; i++ )
{
if ( *src_addr++ != *dest_addr++ )
{
/* Call Error Loop */
return 0;
}
}
return 1;
}
}
// ***********************************************************************
// End of SSP testing
// ***********************************************************************
No comments:
Post a Comment