Сделал простенькую программу, как указано в хелпе CVAVR 2
-------
devices=w1_search(0xf0,rom_codes);
for (i=0;i‹devices;i++)
ds18b20_init(&rom_codes[i][0],25,35,DS18B20_9BIT_RES);
while (1)
{
t=ds18b20_temperature(0);
sprintf(Buf,"t=%.2f ",t);
//это мои функции, работают, проверено
LCD_POS(0xC0);
LCD_str(Buf);
delay_ms(2000);
}
---------
Так она мне возвращает все время -9999
а если перед ds18b20_temperature запретить прерывания, а после разрешить, то возвращает 127,5 градуса всегда. и не меняется.
Причем, если на LCD вывести кол-во найденных DS-ов, то будет как надо - 1, т.е. находятся они.
Может во 2-м CV библиотека не очень?