Проблема с I2C

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Sagamor
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 19, 2011 23:13:13

Проблема с I2C

Сообщение Sagamor »

Препод дал лабораторную, а она не работает, ктонибудь может разобраться в чем дело? очень надо:(
зависает на строчке while (!(TWCR & (1<<TWINT))) ;//Wait for TWINT flag set
В функции:

Код: Выделить всё

char mi2c_start(void) {
  TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);  //Send START condition
  delay_us(1);
  while (!(TWCR & (1<<TWINT))) ;//Wait for TWINT flag set
  return (TWSR & 0xF8);
}
Вложения
AnalogTermoReg.rar
(599.82 КБ) 137 скачиваний
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: Проблема с I2C

Сообщение coredumped »

На SDA и SCL подтяжки стоят? Внутренний pull-up не работает. Причина, скорее всего, в этом.
По коду - все правильно (я смотрел только minit_i2c_Master(void) и mi2c_start(void)). Единственное предложение - задержку в mi2c_start(void) убери (delay_us(1)) - нафиг не нужна.

ЗЫ: Могу 100% работающую либу подкинуть, если нужно.
Все будет только лучше, в крайнем случае - хуже.
Sagamor
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 19, 2011 23:13:13

Re: Проблема с I2C

Сообщение Sagamor »

Не надо уже) спасибо большое:)
Ответить

Вернуться в «Теория»