mirror of
https://github.com/drasko/open-ameba.git
synced 2024-11-29 01:30:34 +00:00
65 lines
1.5 KiB
C
65 lines
1.5 KiB
C
|
/*
|
||
|
* Routines to access hardware
|
||
|
*
|
||
|
* Copyright (c) 2014 Realtek Semiconductor Corp.
|
||
|
*
|
||
|
* This module is a confidential and proprietary property of RealTek and
|
||
|
* possession or use of this module requires written permission of RealTek.
|
||
|
*/
|
||
|
|
||
|
#include "device.h"
|
||
|
#include "main.h"
|
||
|
#include "spi_api.h"
|
||
|
|
||
|
#define SPI_IS_AS_MASTER 1
|
||
|
|
||
|
// SPI0
|
||
|
#define SPI0_MOSI PC_2
|
||
|
#define SPI0_MISO PC_3
|
||
|
#define SPI0_SCLK PC_1
|
||
|
#define SPI0_CS PC_0
|
||
|
|
||
|
/**
|
||
|
* @brief Main program.
|
||
|
* @param None
|
||
|
* @retval None
|
||
|
*/
|
||
|
void main(void)
|
||
|
{
|
||
|
int TestingTimes = 10;
|
||
|
int Counter = 0;
|
||
|
int TestData = 0;
|
||
|
|
||
|
#if SPI_IS_AS_MASTER
|
||
|
spi_t spi_master;
|
||
|
|
||
|
SPI0_IS_AS_SLAVE = 0;
|
||
|
spi_init(&spi_master, SPI0_MOSI, SPI0_MISO, SPI0_SCLK, SPI0_CS);
|
||
|
|
||
|
DBG_SSI_INFO("--------------------------------------------------------\n");
|
||
|
for(Counter = 0, TestData=0xFF; Counter < TestingTimes; Counter++) {
|
||
|
spi_master_write(&spi_master, TestData);
|
||
|
DBG_SSI_INFO("Master write: %02X\n", TestData);
|
||
|
TestData--;
|
||
|
}
|
||
|
spi_free(&spi_master);
|
||
|
|
||
|
#else
|
||
|
spi_t spi_slave;
|
||
|
|
||
|
SPI0_IS_AS_SLAVE = 1;
|
||
|
spi_init(&spi_slave, SPI0_MOSI, SPI0_MISO, SPI0_SCLK, SPI0_CS);
|
||
|
|
||
|
DBG_SSI_INFO("--------------------------------------------------------\n");
|
||
|
for(Counter = 0, TestData=0xFF; Counter < TestingTimes; Counter++) {
|
||
|
DBG_SSI_INFO(ANSI_COLOR_CYAN"Slave read : %02X\n"ANSI_COLOR_RESET,
|
||
|
spi_slave_read(&spi_slave));
|
||
|
TestData--;
|
||
|
}
|
||
|
spi_free(&spi_slave);
|
||
|
#endif
|
||
|
|
||
|
DBG_SSI_INFO("SPI Demo finished.\n");
|
||
|
for(;;);
|
||
|
}
|