AVR I2 C проблема - PullRequest
       22

AVR I2 C проблема

0 голосов
/ 09 января 2020

Я пытаюсь связаться, используя I2 C с AT90CAN128, но это не идет дальше, чем следовало бы, пока l oop:

while(!(TWCR & (1<<TWINT)));

Это остается в то время как l oop. По моему мнению, он не может установить флаг TWINT.

void TWI_start(void)
{
  TWCR= (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); 
  while(!(TWCR & (1<<TWINT)));`enter code here`
  while((TWSR & 0xF8)!= 0x08); 
}

Есть предложения?

1 Ответ

0 голосов
/ 09 января 2020

Возможно аппаратная проблема.

TWI Master пытается установить SDA и SCL и проверяет, находятся ли SDA и SCL на GND. Проверьте соединения и значение ваших подтягивающих резисторов. Если контроллеру не удается сбросить линии, условие START никогда не регистрируется, а TWINT никогда не устанавливается.

...