Цитата(Яrik @ Mar 24 2007, 23:01)

Да вопрос выразел неочень
Интересует как раз упаковка данных в два слова.
Примерно так
Код
// void OutSPI8(uint8_t byte_data); // вывод на SPI 8 бит для примера
#define CH_A 0 // Канал А ЦАП
#define CH_B 0x80 // Канал B ЦАП
struct
{
uint8_t Buf : 1, // VREF Input Buffer Control bit: 1 = Buffered
Ga : 1, // GA: Output Gain Select bit: 1 = 1x (VOUT = VREF * D/4096), 0 = 2x (VOUT = 2 * VREF * D/4096)
SHDN : 1; // SHDN: Output Power Down Control bit: 1 = Output Power Down Control bit, 0 = Output buffer disabled, Output is high impedance
} Status_DAC; // биты статуса ЦАПа
uint16_t DAC_Data; // Выходные данные выводимые на ЦАП
void OutDAC_ChanB(uint16_t data); // пример
{
uint8_t i;
CS_On; // Выбрать ЦАП
i = ((DAC_Data >> 8) & 0xf)|CH_B|Status_DAC.Buf>>6|Status_DAC.Ga>>5|Status_DAC.SHDN>>4; // формируем старший байт
OutSPI8(i); // выводим ст. байт SPI
OutSPI8(DAC_Data & 0xff); // выводим мл. байт SPI
CS_Off;
LDAC_On;
LDAC_Off; // выдать напряжение
}