Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
Ножки резистором подтянул. Смотрю осцилл SDA, SCL - не дергается (а должен же хоть один байт передать. ACK конечно нет)
все функции возвращают SUCCESS.
вот урезано, что я написал:
adi_int_Init(...);
adi_pwr_Init(...);
adi_dev_Init( devmgr_storage,
sizeof(devmgr_storage),
&response_count,
&devmgr_handle,
&imask_storage
);
adi_dev_Open(
devmgr_handle,
&ADITWIEntryPoint,
0,
NULL,
&twi_handle,
ADI_DEV_DIRECTION_BIDIRECTIONAL,
NULL,
NULL,
NULL
);
adi_twi_bit_rate rate={100,50};
ADI_DEV_CMD_VALUE_PAIR twiConfigTable[]= // configuration table for the TWI driver
{
{ADI_TWI_CMD_SET_HARDWARE, (void *)ADI_INT_TWI },
{ADI_DEV_CMD_SET_DATAFLOW_METHOD, (void *)ADI_DEV_MODE_SEQ_CHAINED},
{ADI_TWI_CMD_SET_FIFO, (void *)0x0000 },
{ADI_TWI_CMD_SET_RATE, (void *)(&rate) },
{ADI_TWI_CMD_SET_LOSTARB, (void *)1 },
{ADI_TWI_CMD_SET_ANAK, (void *)0 },
//{ ADI_TWI_CMD_SET_SCCB, 0 },
{ADI_TWI_CMD_SET_DNAK, (void *)0 },
{ADI_DEV_CMD_SET_DATAFLOW, (void *)TRUE },
{ADI_DEV_CMD_END, NULL }
};
te_1 = adi_dev_Control( twi_handle,
ADI_DEV_CMD_TABLE,
twiConfigTable
);
twiOutbound_SEQ_1D_Buffer.Buffer.Data = twiOutbound_Buff;
twiOutbound_SEQ_1D_Buffer.Buffer.ElementWidth = 1;
twiOutbound_SEQ_1D_Buffer.Buffer.CallbackParameter = NULL;
twiOutbound_SEQ_1D_Buffer.Buffer.pAdditionalInfo = (void *)9;
twiOutbound_SEQ_1D_Buffer.Buffer.ProcessedFlag = FALSE;
twiOutbound_SEQ_1D_Buffer.Buffer.pNext = NULL;
twiOutbound_SEQ_1D_Buffer.Direction = ADI_DEV_DIRECTION_OUTBOUND;
twiOutbound_Buff[0] = 0x5;
twiOutbound_Buff[1] = 0x4;
twiOutbound_Buff[2] = 0x7;
twiOutbound_Buff[3] = 0x6;
twiOutbound_Buff[4] = 0x3;
twiOutbound_SEQ_1D_Buffer.Buffer.ElementCount = 200;
adi_dev_Write( twi_handle,
ADI_DEV_SEQ_1D,
(ADI_DEV_BUFFER *)&twiOutbound_SEQ_1D_Buffer
);
В чем проблема может быть???