Схема подключения
Цитата(aesok @ Jun 10 2008, 09:13)

Еще в начале функции 'i2cInit' есть код:
Код
00055 // set pull-up resistors on I2C bus pins
00056 // TODO: should #ifdef these
00057 sbi(PORTC, 0); // i2c SCL on ATmega163,323,16,32,etc
00058 sbi(PORTC, 1); // i2c SDA on ATmega163,323,16,32,etc
00059 sbi(PORTD, 0); // i2c SCL on ATmega128,64
00060 sbi(PORTD, 1); // i2c SDA on ATmega128,64
Но в ATmega48 TWI расположен на портах PC4, PC5. у вас есть в схеме подтягивающие регистры?
Анатолий.
у меня в схеме внешние подтягивающие резисторы а упомянутые вами строчки закоментированы как не относящиеся к i2c.
Цитата(aesok @ Jun 10 2008, 09:13)

Как вы пришли к такому пониманию? Можно услышать логическую цепочку?
например по тому что при входе в соответсвующие ф-и прерывания вырубаются - а при выходе возвращаются:
Код
// disable TWI interrupt
//cbi(TWCR, TWIE);
...
Код
// enable TWI interrupt
//sbi(TWCR, TWIE);
return retval;
или по следующим комментариям например:
Код
//! send I2C data to a device on the bus (non-interrupt based)
u08 i2cMasterSendNI(u08 deviceAddr, u08 length, u08* data);
//! receive I2C data from a device on the bus (non-interrupt based)
u08 i2cMasterReceiveNI(u08 deviceAddr, u08 length, u08 *data);
Сообщение отредактировал cvv - Jun 10 2008, 08:22
Эскизы прикрепленных изображений