Consolidate ssp_read and ssp_write into a single function, ssp_transfer. SSP bus transfers are bi-directional -- when bytes are written, they are also read.
This commit is contained in:
parent
25d7853422
commit
18bcbc3d28
@ -194,9 +194,7 @@ void ssp_init(ssp_num_t ssp_num,
|
|||||||
ssp_master_slave_t master_slave,
|
ssp_master_slave_t master_slave,
|
||||||
ssp_slave_option_t slave_option);
|
ssp_slave_option_t slave_option);
|
||||||
|
|
||||||
uint16_t ssp_read(ssp_num_t ssp_num);
|
u16 ssp_transfer(ssp_num_t ssp_num, u16 data);
|
||||||
|
|
||||||
void ssp_write(ssp_num_t ssp_num, uint16_t data);
|
|
||||||
|
|
||||||
END_DECLS
|
END_DECLS
|
||||||
|
|
||||||
|
@ -89,25 +89,6 @@ void ssp_init(ssp_num_t ssp_num,
|
|||||||
SSP_CR1(ssp_port) = (SSP_ENABLE | mode | master_slave | slave_option);
|
SSP_CR1(ssp_port) = (SSP_ENABLE | mode | master_slave | slave_option);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* This Function Wait until Data RX Ready, and return Data Read from SSP.
|
|
||||||
*/
|
|
||||||
uint16_t ssp_read(ssp_num_t ssp_num)
|
|
||||||
{
|
|
||||||
uint32_t ssp_port;
|
|
||||||
|
|
||||||
if (ssp_num == SSP0_NUM) {
|
|
||||||
ssp_port = SSP0;
|
|
||||||
} else {
|
|
||||||
ssp_port = SSP1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Wait Until Data Received (Rx FIFO not Empty) */
|
|
||||||
while ((SSP_SR(ssp_port) & SSP_SR_RNE) == 0);
|
|
||||||
|
|
||||||
return SSP_DR(ssp_port);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ssp_wait_until_not_busy(ssp_num_t ssp_num)
|
void ssp_wait_until_not_busy(ssp_num_t ssp_num)
|
||||||
{
|
{
|
||||||
uint32_t ssp_port;
|
uint32_t ssp_port;
|
||||||
@ -122,7 +103,7 @@ void ssp_wait_until_not_busy(ssp_num_t ssp_num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* This Function Wait Data TX Ready, and Write Data to SSP */
|
/* This Function Wait Data TX Ready, and Write Data to SSP */
|
||||||
void ssp_write(ssp_num_t ssp_num, uint16_t data)
|
u16 ssp_transfer(ssp_num_t ssp_num, u16 data)
|
||||||
{
|
{
|
||||||
uint32_t ssp_port;
|
uint32_t ssp_port;
|
||||||
|
|
||||||
@ -147,6 +128,11 @@ void ssp_write(ssp_num_t ssp_num, uint16_t data)
|
|||||||
* example...
|
* example...
|
||||||
*/
|
*/
|
||||||
ssp_wait_until_not_busy(ssp_num);
|
ssp_wait_until_not_busy(ssp_num);
|
||||||
|
|
||||||
|
/* Wait Until Data Received (Rx FIFO not Empty) */
|
||||||
|
while( (SSP_SR(ssp_port) & SSP_SR_RNE) == 0);
|
||||||
|
|
||||||
|
return SSP_DR(ssp_port);
|
||||||
}
|
}
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user