Здраствуйте!
Вобщем хочу я сделать USB термомерт используя мегу8 и DS18b20. Вобщем написал програмку, а когда запустил то по USB(CDC) начали приходить неверные данные с термометра, сначала грешил на DS18b20 но когда подключил его к другому девайсу то он там работал нормально. Потом я отключил USB (в самом коде) и отправлял даные с датчика на UART, на компе было видно реальную температуру. Дальше я написал программу так, чтобы юсб был включен но даные передавались на ЮАРТ и тут ошибка повторилась

Вобщем насколько я понял, то комп постоянно отправляет даные на мегу8 и очень часто вызываеться прерывание по INT0 даже тогда, когда меряеться температура а так как задержки между отправкой и приемом команд к DS маленькие, несколько микросекунд(хотя задержка для измерения температуры датчиком минимум 750мс) то или при отправке комманды долго передается бит и DS перезагружаеться, или когда принимаються то МК невовремя реагирует на комманды и получает неправильные данные. Пробовал отключать глобольно прерывания(cli) перед измерением температуры и включать(sei) после измерения но тогда МК вообще не шлет даные по ЮСБ и не отвечает на комманды с ЮСБ(например когда отправляю "1" то он должен прислать "one", 2 - "two") . Ещё пробовал делать так:
------- отключил прерывания перед отправкой комманд к DS чтобы он измерил температуру.
------- включил после этих комманд потому что далее должна быть задержка 800мс.
------- спустя 800 мс отключал, отправлял комманду чтения температуры, когда он присылал даные опять включал
------- эфект тот же!
Кароче мне нада сделать так,чтобы как то отключать ЮСБ на время измерения температуры ну или ещё что нибуть

.
Частота 12Мгц, питание от ЮСБ. Вот клавный файл и библиотека для измерения температуры которую я скачал с инета, немного переделал после чего она работает отлично, правда тока на 1 датчик
http://upwap.ru/619341 .
Заранее спасиба!!!!!!!
вот кстате те самые даные с термометра:
+031.1
+125.7
+127.5
+031.3
+023.7
-000.7
+127.1
+021.3
+031.1
-000.7
-000.7
-000.7
-000.7
-000.7
+125.7
-000.7
-000.7
+119.7
+063.7
-000.7
-000.7
+125.6