Цитата(alux @ Jul 20 2007, 14:53)

Если использовать avr315, как просто получить и/или принять один байт без применения буфера?
Никак - буфер должен быть обязательно. И упр. структура.
Но это не должно Вас пугать. Это есть правильный подход.
Цитата(alux @ Jul 20 2007, 09:03)

Правильно ли будет с моей поправкой?
Думаю что нет.
условие (j) равносильно (j > 0), вы используете пост декремент, а это значит, что 0 в теле цикла никогда не появится.
Я бы сделал функцию чтения блока, т.к. все равно побайтовый I2C обмен практически не нужен:
Код
U8 Get_Block( <Тип записи> *pDataPkt )
{
U8 size = pDataPkt->size;
U8 state = ACK;
while( size-- && state == ACK)
{
state = Get_byte(pDataPkt->data_ptr++, size);
}
return state;
}