ILYAUL 0 2 января, 2013 Опубликовано 2 января, 2013 · Жалоба Тоже самое и с полевиками, фронты - мама не горюй , все регистры читаются как положено , даже загонял значения в USER's registers - . Резервные 5 и 8 выдают строго по DS. 6 байт - о котором нет ни слова , каждый раз выдаёт новое значение, хотя на полученной температуре сие не сказывается. Один из трёх (дома на макетке) "уложил в талую воду. Ну скачет температура у датчика +/- 0,0625 ( использую 12 разрядов точность ) , но CRC всё равно не сходится хоть ты ее тресни. Второй обнял ВМР085- и они дружненько так показывают одинаково температуру до запятой , сточностью у них понятненько есть разница. Третий с таким же собратом только от другого проекта , болтаются на улице, и здесь наблюдается единое мнение до 2 знака после запятой. Ну ее на хрен эту CRC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба Ну ее на хрен эту CRC. Как так - на хрен? Тогда уж лучше с плеча - 1-wire на хрен. Если без CRC, то как тогда отличать, где верно, а где нет? P.S. Есть ли адекватная замена 1-wire? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба Всю ночь мой датчик проработал на улице. CRC совпадает. Без CRC строго не советую работать, температуры чудные выходят) P.S. Есть ли адекватная замена 1-wire? 1-wire over RS-485? :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба CRC совпадает C какой точностью работаешь? Если без CRC, то как тогда отличать, где верно, а где нет? У этих датчиков есть один неприятный момомент , при частом опросе идёт саморазогрев, если CRC не совпало нужно повторить преобразование - чтение. Хорошо , если со второй попытки совпало , а если нет? Я бы не стал доверять такой температуре. У меня в MENU забит пункт - TIMEOUT опроса датчиков. Минимум , который можно задать- 1мин. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба C какой точностью работаешь? Та, которая по умолчанию - 12 бит. У этих датчиков есть один неприятный момомент , при частом опросе идёт саморазогрев, если CRC не совпало нужно повторить преобразование - чтение. Хорошо , если со второй попытки совпало , а если нет? Я бы не стал доверять такой температуре. У меня в MENU забит пункт - TIMEOUT опроса датчиков. Минимум , который можно задать- 1мин. Я опрашиваю датчики не чаще 30 секунд. Причем интервал разбит на две части: 1. Команда на конвертацию. 2. Пауза 15 сек. 3. Чтение температуры. 4. Пауза 15 сек. 5. Переход к п. 1. Такие паузы пришлось взять по причине использования ОС. А для формирования точной времянке на шине, приходится использовать критические секции (читай запрет прерываний). Чтобы часто систему не вешать - интервал взять большой. По сути для уличного измерения температуры его можно увеличить вплоть до 30 минут, чаще вряд ли оправдано. Для дома (ИМХО) - 1 минута, если датчик работает как противопожарный. И до 10 - 20 минут, если "просто" измеряет. Как-то так) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба 1. Команда на конвертацию. + (~)750ms (обычно меньше)= данные. 0xF0 0x55 Rom 0x44 750ms 0xF0 0x55 Rom 0xBE ~= 800ms У меня таймер работает по секундно , очень удобно 1Гц получать из USART-ого кварца. Я это к чему, в течении 1 сек можно конвертировать и прочитать. Зачем 2. Пауза 15 сек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба + (~)750ms (обычно меньше)= данные. 0xF0 0x55 Rom 0x44 750ms 0xF0 0x55 Rom 0xBE ~= 800ms У меня таймер работает по секундно , очень удобно 1Гц получать из USART-ого кварца. Я это к чему, в течении 1 сек можно конвертировать и прочитать. Зачем Так КС-то до сих пор не сходится? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба Празник, не дадут посидеть нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба ...приходится использовать критические секции (читай запрет прерываний). Чтобы часто систему не вешать - интервал взять большой.... все с этого начинали. с синхронизации с другими критическими событиями в девайсе. но если присмотритесь повнимательней к протоколу, то точно выдерживать временной срез необходимо только в одном месте - от синхроимпульса до начала тайм-слота. всё остальное апсолютно не критично. если весь сыр-бор загнать в прерывание, то собственно общение по 1wire ни с кем конфликтовать и не будет в принципе... типа совет дня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 4 января, 2013 Опубликовано 4 января, 2013 · Жалоба типа совет дня. Спасибо, очень ценный совет! В будущем, будет время заняться - попробую внедрить тему... Жаль в "ходовых" мегах один USART. Ну да ладно, таймерное прерывание лишнее найти думаю не проблема... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 4 января, 2013 Опубликовано 4 января, 2013 · Жалоба Жаль в "ходовых" мегах один USART И чему это мешает? 1-USART = N-sensors 1-Wire+4-KNOB(можно больше, но мне не надо)+LCD+(прикручиваю в данный момент)радиомодуль. Требует мультиплексор =1 транзистор +2 сигнала квинтирования. Естественно все используют свои прерывания. Используй 164P- там их два. Если пишешь на С - максимальная версия этой линейки 1284 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 4 января, 2013 Опубликовано 4 января, 2013 · Жалоба Так КС-то до сих пор не сходится? Охренеть ( личная цензура внесла коррективы в это слово) . Чем думал пИсатель этой проги от МАКСИМ. Всё раком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 5 января, 2013 Опубликовано 5 января, 2013 · Жалоба И чему это мешает? 1-USART = N-sensors 1-Wire+4-KNOB(можно больше, но мне не надо)+LCD+(прикручиваю в данный момент)радиомодуль. Требует мультиплексор =1 транзистор +2 сигнала квинтирования. Естественно все используют свои прерывания. Используй 164P- там их два. Если пишешь на С - максимальная версия этой линейки 1284 Сложно :rolleyes: У меня один USART постоянно под RS-485 занят) Охренеть ( личная цензура внесла коррективы в это слово) . Чем думал пИсатель этой проги от МАКСИМ. Всё раком. Да уж... тут же невоороженным глазом видно, что две суммы не сходятся... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 5 января, 2013 Опубликовано 5 января, 2013 · Жалоба Да уж... тут же невоороженным глазом видно, что две суммы не сходятся... Да всё сходится и на первой и на второй картинке , только найдите семь отличий, такое вот предрождественское развлечение. А вот в конец можно писать слово из трёх букв и всё будет нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 5 января, 2013 Опубликовано 5 января, 2013 · Жалоба ..Жаль в "ходовых" мегах один USART... сдался вам этот USART. можно в фоне, ногодрыганьем. да - таймер лучше разгрести. слишком разные временные интервалы - пришлось в своё время отказаться от "универсального временного задатчика" - таймер подправляю на лету, в зависимости от нужного интервала. обработчик зависит от карты считываемой из флэша. получается некая аля стэйт машина молотящая в фоновом режиме необходимые команды, описанные (и корректируемые уже чисто отдельно в таблице). сами мат. вычисления происходят в "основном потоке". для этого добавлены такие команды как: ожидание, перейти на начало и несколько ещё специфичных...реально в боевом железе надо быстро сканировать все датчики (штук 6-8), посему они все на одном порту и за каждую секунду реальная картина необходимая для принятия решения каждый раз известна. разогрев самих датчиков обычно лежит в пределах 0,2 градуса и при необходимости повышения точности - можно учитывать при задании корректирующего значения после линии сборки на самом производстве изделий (характеристика резисторных датчиков линейна - так, что достаточно одной точки). речь шла о мега128, кварц 14,7456 МГц но в своё время реализовывал и на 51 серии с кварцем 24 и тактовой 2МГц. работает на ура. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться