tsb, индикация динамическая. именно по этому и поместил ее обработку в прерывание.
сначала
Цитата:
|
OWI_DetectPresence(BUS);
OWI_SkipRom(BUS);
OWI_SendByte(DS18B20_CONVERT_T ,BUS);
|
потом
Цитата:
|
OWI_DetectPresence(BUS);
OWI_SkipRom(BUS);
OWI_SendByte(DS18B20_READ_SCRATCHPAD, BUS);
scratchpad[0] = OWI_ReceiveByte(BUS);
scratchpad[1] = OWI_ReceiveByte(BUS);
|
эти команды выполняются строго без прерываний.
но между ними должна быть пауза в 1 секунду.
и чтобы не было мерцания я разрешаю прерывания перед задержкой (на эту секунду)
Цитата:
|
__enable_interrupt();
__delay_cycles(9000000);
__disable_interrupt();
|
таким образом мерцание исчезает. но при этом обновление scratchpad перестало происходить