в моем варианте в PORTB.0 и DDRB.0 были записаны 1 а в цикле я присваивал значение бита ACO(ACSR.5) биту PORTB.0
В вашей ситуации вы присваиваете PORTB.2 и DDRB.2(0xFC==11111100) 1 и в цикле Значение бита ACO присваиваете PORTB.2. Ситуация идентична
Как на С это реализуется?Arlleex писал(а):По умолчанию начальное значение регистра температуры SCRATCHPAD памяти датчика равно 85 градусам по Цельсию.
Исправить можно правильно построенной программной - сначала запустить процесс преобразования температуры, а только потом считать данные из датчика и вывести их на дисплей.
Код: Выделить всё
int main(void)
{
while(1);
ds_init(); // инициализация датчика
ds_cmd(0xCC); // передаем команду пропуска ROM
ds_cmd(0x44); // конвертирование температуры
ds_init(); // инициализация датчика
ds_cmd(0xCC); // передаем команду пропуска ROM
lcd_write(ds_cmd(0xBE)); // запись данных
}
}