В общем, чуть поигрался с Протеусом и непрерывное преобразование в нем заработало (так и не понял почему). Однако в жизни датчик не работает. Я решил проверить как вообще отзывается датчик. Он при адресе 0b10010000 выдает NACK то бишь не отзывается. Хотя я его выводы 5 6 7 посадил на землю. Подтяжку по 4.7 тоже поставил.
То есть этот код
Код:
start_twi();
write_twi(0b10010000);
Дает в регистре статуса TWSR код 0x20 что значит "Адресный пакет отправил, а подтверждение не было принято"
что забавно, второй датчик (у меня их два) вообще не приводит к выводу кода на экран. Может они какие-то сломанные? Вроде покупал в магазине, не выпаивал.
Прилагаю рабочий код, где подается адресный пакет и диагностическое сообщение выводится на жк экран в десятичной системе (24 (18 hex) - значит все в порядке, 32 (20 hex) - значит не отозвался на свой адрес).
Не знаю что и делать....
А разве порт С нужно делать выходом? Вроде если аппаратный TWI работает то это не требуется. Но все равно проверил, результат тот же. Датчик не отзывается.
