Появился еще один вопрос:
Код
есть 2 массива:
const unsigned char cmd[]=
{0x81, 0x80,};
const unsigned char data[]=
{0x00,};
char len = sizeof(data) / sizeof(data[0]);
они посылаются этими вызовами по очереди
transmit(cmd, sizeof(cmd));
transmit(data, sizeof(data));
вот сюда:
void transmit(const unsigned char *p, int len)
{
spi_init();
while(len)
{
SPDR = *p;
p++;
len--;
while (!(SPSR & (1<<SPIF)));
data = SPDR;
}
disable_spi();
}
смысл такой: Меняться может только массив дата: (от 1 до 128 байт),
но в зависимости от количества байт в этом массиве, должен меняться первый байт массива цмд: т.е.
0x01 читать 1 байт
0x81 писать 1 байт
0x05 читать 5 байт
0x85 писать 5 байт
вот мне и надо менять этот байтавтоматиески...
Фактически мне надо сложить этот первый байт заменив его:
#define wr 0x80
#define rd 0x00
с переменной лен, но практичеки не выходит.
Может кто знает как?