Вот на Меге8 в автомобиль хочу пару-тройку термометров повесить и на семисегментном индикаторе отображать температуру по одному из выбранных кнопочкой датчиков.
Суть проблемы опять в мерцании, то есть когда один висит датчик, это все без проблем.
Индикация: по переполнению таймера выбирается следующее значение из массива, все стандартно.
Вот пока шлешь 8-байтный адрес устройства, приходится запрещать прерывания, вот в этот-то момент и происходит погасание индикатора. Хотел построчно посылать 8 байт адреса и между ними делать небольшие паузы в несколько милисекунд, чтобы в это время работала индикация, но так датчики упорно не хотят работать
Пробовал не запрещать прерывания а по-минимуму сократить процедуру прерывания, все равно, такой же эффект. Подскажите кто чем может =)
В качестве 1-wire фунцкций использую библиотеку CodeVision
Ну вот что у меня
#asm("cli")
w1_init();
w1_write(MATCH_ROM);
#asm("sei");
delay_ms(2);
#asm("cli");
w1_write(rom_code[dev-1][0]);
#asm("sei");
delay_ms(2);
#asm("cli");
w1_write(rom_code[dev-1][1]);
.......
w1_write(rom_code[dev-1][7]);
#asm("sei");
delay_ms(2);
#asm("cli");
w1_write(CONVERT_T);
#asm("sei");



