26.10.2012, 19:14
|
#11
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Сообщение от omercury
|
...вот, блин, проблем себе напридумывали...
|
Ну, Вы мистер, любитель цепляться к словам... Не мне, ТС это объясните...
Мне главное чтобы он понял чем delay_us(1); отличается от NOP при 4 Мгц... Даже при NOP не так просто вложится в 15 мкс если читать не порт0, а порт7...
|
|
|
|
26.10.2012, 19:16
|
#12
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Протеус тож нормально хавает.
Делал 5us минимальный таймслот - полёт нормальный.
|
|
|
|
26.10.2012, 19:26
|
#13
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Сообщение от omercury
|
Протеус тож нормально хавает.
Делал 5us минимальный таймслот - полёт нормальный.
|
В Протеусе это работает на ура, а вот в железе (я переделал сотню таких термометров) при 4 Мгц всегда проблемы. Обратите внимание на ту 1 мкс (1 мкс – импульс восстановления), после которого шину нужно отпустить и читать, вот здесь всегда и затык. Именно тайм слоты чтения... Вот здесь и не успевает. ![Нажмите на изображение для увеличения
Название: 1820.jpg
Просмотров: 83
Размер: 167.2 Кб
ID: 39888](https://kazus.ru/forums/attachment.php?attachmentid=39888&thumb=1&d=1351265656)
Если у ТС чтение написано подобным образом, то delay_us(1); можно убрать, а delay_us(10) будет равно 22 мкс (при 4 мгц компилятор boostc). Так что паузы нужно корректировать...
Хотя чего копья ломать, опять нет исходника, а все уже начинают друг друга пожирать...
Последний раз редактировалось mimuh64; 26.10.2012 в 20:17.
|
|
|
|
26.10.2012, 20:15
|
#14
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Еще прерывания надо отключать на время работы с шиной.
|
|
|
|
26.10.2012, 20:37
|
#15
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: DS18B20 и два ПИКа
yellow87, на какую ногу подключаете датчик?
Если подключаете на GP0 или GP1, то обязательно надо отключить аналоговые входы компараторов (после сброса они подключены).
А вообще, это все гадание на кофейной гуще.
Где то, на что посмотреть, где Ваш проект?
|
|
|
|
26.10.2012, 21:15
|
#16
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Сообщение от mimuh64
|
Обратите внимание на ту 1 мкс (1 мкс – импульс восстановления), после которого шину нужно отпустить и читать, вот здесь всегда и затык.
|
Время восстановления, до истечения которого нефиг на шину и соваться... ![Улыбка](images/smilies/icon_smile.gif)
Если не пугает асм АВР, то вот рабочий в железе проект. Там 5us.
Нет пересчёта в отрицательные температуры, ... да много чего нет, но OW работает.
Фотку "девайса" в работе класть?
|
|
|
|
26.10.2012, 21:31
|
#17
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Сообщение от omercury
|
Время восстановления, до истечения которого нефиг на шину и соваться... ![Улыбка](images/smilies/icon_smile.gif)
Если не пугает асм АВР, то вот рабочий в железе проект. Там 5us.
Нет пересчёта в отрицательные температуры, ... да много чего нет, но OW работает.
|
Может и нефиг соваться, но все зависит от библиотеки, если писать самому (хоть на СИ) и на асм, то да... Чего копья ломать? Я не вижу в чем я не прав? Я прав. Вы мистер тоже. Кроме того не нужно смешивать ПИК и АВР. Я на асм не пишу, но понимаю...гыгы... Все что я написал выше все справедливо и после вашего примера. Повторяюсь, на Си delay_us(10) - это не 10 мкс (при 4 мгц). В вашем примере 5 мкс (да и 10мкс) написаны совсем не так как это в библиотеке ПИК....Так что вы зря бравируете своим примером, конечно так он будет работать. Я тоже также писал у себя (на Си), без delay_us.
Мне все таки интересно на чем же ТС пишет??? Я предлагаю подождать...
Последний раз редактировалось mimuh64; 26.10.2012 в 21:37.
|
|
|
|
26.10.2012, 21:44
|
#18
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Еще я применял такой финт ушами - перед опросом датчика поднимал частоту RC генератора до предельной. После опускал. Итого выигрывал по потреблению.
|
|
|
|
26.10.2012, 22:09
|
#19
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Сообщение от Easyrider83
|
Это 4*15=60 инструкций на бит.
|
Не нужно умножать на 4. Для PIC 4*15=60/4... ![Улыбка](images/smilies/icon_smile.gif)
Сообщение от mimuh64
|
Кроме того не нужно смешивать ПИК и АВР.
|
А в чём принципиальная разница?
Машинный цикл, он и в Африке машинный цикл. Хоть при одном, хоть при четырёх тактах. 1us - это 1 машцикл на 4МГц для младших PIC. 5 циклов более чем достаточно, чтоб передёрнуть пином.
Сообщение от mimuh64
|
на Си delay_us(10) - это не 10 мкс (при 4 мгц).
|
Почему?
Если в свойствах проекта задана частота, то должно быть 10. Или либа кривая...
|
|
|
|
26.10.2012, 22:22
|
#20
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: DS18B20 и два ПИКа
Сообщение от omercury
|
1. А в чём принципиальная разница? Машинный цикл, он и в Африке машинный цикл.
2. Если в свойствах проекта задана частота, то должно быть 10. Или либа кривая...
|
1. Для АСМ да... Если разработчик (пишет на СИ) после компиляции смотрит что получилось на асм, то да. Но я про Си, просто про Си. Если просто писать на Си то есть различия...
2. Не сочтите за труд прочтите вот эту ссылку пост 11278(просто здесь это займет много места). Там есть пример как выглядит delay_us(1) после компиляции (это например для boostc). При компиляции компиляторы частенько выдают сообщения про масштабируемость задержек... Попробуйте в СИ написать паузу (из библиотеки) и промерять ее в Протеусе на малых частотах...Так что дело не в либе, так написаны паузы...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
DS18B20
|
Vrungel |
Микроконтроллеры, АЦП, память и т.д |
77 |
30.06.2011 09:52 |
Дизассемблер для 24 пика
|
SGordon |
Микроконтроллеры, АЦП, память и т.д |
0 |
05.09.2008 11:37 |
VGA для ПИКа
|
Popeye |
Микроконтроллеры, АЦП, память и т.д |
0 |
18.08.2008 17:46 |
Обмен данными ПИКа с внешней флэш
|
Boris_Britva |
Микроконтроллеры, АЦП, память и т.д |
2 |
18.06.2008 11:19 |
Два дросселя
|
PetroF |
Источники питания и свет |
3 |
13.11.2007 12:36 |
Часовой пояс GMT +4, время: 13:34.
|
|