|
// SPI.C// работа с SPI ADuC812
#include
//----------------------------------------------------------------
void spi_init(void)
{
// инициализируем регистр SPICON
SPIM = 1;
CPOL = 1;
CPHA = 0;
SPR1 = 0;
SPR0 = 1;
SPE = 1; // поехали!
}
//----------------------------------------------------------------
// передать массив байт
// вход - указатель на массив в idata
// количество байт на передачу
// выход - все прочитанные данные пишутся в тот же массивvoid spi_tx( unsigned char idata *array,
unsigned char count)
{
unsigned char idata *pidata;if ( count == 0 ) return;
pidata = array;
do
{
ISPI = 0;
SPIDAT = *pidata; // записали
while( !ISPI );
*pidata = SPIDAT; // прочли
pidata++;
} while ( --count );
}
//----------------------------------------------------------------
E-mail: info@telesys.ru