сделал вот такие макросы:
Код
#define s65_w8(x) do { \
clr(CS); \
spi_out_wait(x); \
set(CS); \
}while(0)
/// вывод 16 бит команды
#define s65_cmd16(x) do { \
set(RS); \
s65_w8((x)>>8); \
s65_w8(x); \
} while(0)
#define set(x) S65_PORT |= (x)
#define clr(x) S65_PORT &= ((x)^0xFF)
теперь их использую:
Код
uint8_t x;
#define ASX 0x1200
s65_cmd16(0x1806); // ЕСТЬ ВАРНИНГ
s65_cmd16(ASX+x); // НЕТ ВАРНИНГА
в общем, не могу понять, в каком месте возникает это самое усекновение знакового числа в беззнаковое... надоела куча варнингов... можно отключить, но надо ж понять...
Я бы взял частями... но мне надо сразу.