[an error occurred while processing this directive]
|
Делаю на CV AVR C программный SPI (только передаю наружу).
Надо передать 8-битное слово начиная со старшего бита.
Сделал вот так. Оно работает.
Но, наверное, есть и более оптимальный алгоритм? Не подскажете какой?
Или пошлите к рульной книжке, ежели знаете таковую.
Заранее спасибо!
#define TransPin PORTA.0
char SData, SMask;
int i;
SMask=0b10000000;
//Выталкиваем в TransPin старший бит из SData
if (SData&SMask) TransPin=1;
else TransPin=0;
//здесь хлопнет CLK
//Выталкиваем в TransPin оставшиеся 7 бит из SData
for (i=0; i<7; i++)
{
SMask=SMask>>1;
if (SData&SMask) TransPin=1;
else TransPin=0;
//здесь хлопнет CLK
}
E-mail: info@telesys.ru