Цитата(alux @ Jul 20 2007, 18:13)

Значит нужно сделать предекремент?
нет, нужно менять либо условие (т.к. проверка условия в цикле for делается
до модификации),
либо параметр функции:
Get_Byte( xx, j - 1);
либо саму функцию..
Цитата
Я бы предпочел использовать функцию Send_to_TWI , как в avr155. Только с поправкой (с предекрементом для receive data).
я предпочитаю пользоваться функцией блочной записи/чтения:
/***********************************************
* i2c_MemTransfer() *
* begin interrupt handled transfer *
* ---> I2CAddr - address of the target device *
* if even - Master to slave direction *
* if odd - Slave to Master direction *
* ---> memAddr - address of memory cell *
* ---> count - number of bytes to transfer *
* ---> pData - data to write, or pointer to *
* buffer (if receiving) *
* <--- ничего не возвращает *
***********************************************/
void i2c_MemTransfer(U8 I2CAddr, U16 memAddr, U8 count, U8 *pData)
Цитата
Как отправить по TWI (avr315) массив из 1000 байт? Не инициализировать же буфер из 1000 байт...
Блоками например по 32 байта. И буфер сделать 32 байта.
Обычно объем буфера зависит от слейва.
Вы с каким устройством собираетесь работать через i2c?