|
По поводу быстродействия. При тактовой 20 МГц приведенный ниже кусок ( как видишь это твой пример плюс проверка АСК) выполняется 20 мКс
Оптимизация включена - 9 уровень. Прикомпиляции на АСМе тот же кусок будет выполнятся примерно 20 МЦ или 20*0,2 = 4 мкс.//***********************************
// I2CSend - передача байта по I2C
//------------------------------------
void I2CSend ( unsigned char Data )
{
unsigned char i = 8;
//
do
{
SDA = 0;
if ( Data & 0x80 )
SDA = 1;
SCL = 1;
Data = Data << 1;
SCL = 0;
}
while(i--);
//======================================
// Переключим шину данных на вход и проверим ACK
//=======================================
SDA_CNF = 1;
//
SCL = 1;
NOP();
//
FlagAsk = SDA;
//
SCL = 0;
SDA_CNF = 0;
} // I2CSend
E-mail: info@telesys.ru