AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
11.03.2014, 11:55
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Не могу подключить ds18b20
85 градусов - это считывание результата до окончания конвертирования.
Автор, 1-wire и динамическая индикация у новичков в программировании обычно не работают. Тут нужно понимать, что и когда твой проц делает. Понимание придет потом. Возможно.
|
|
|
|
11.03.2014, 12:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не могу подключить ds18b20
Сообщение от Godzilla82
|
И чтобы всё работало корректно, достаточно запретить прерывания именно на момент вызова этих функций (~ 500 мкс).
|
Да необязательно так делать: достаточно UART, который работает с 1-wire, посадить на DMA. И будет все замечательно.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
11.03.2014, 13:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Не могу подключить ds18b20
Сообщение от Easyrider83
|
Понимание придет потом. Возможно.
|
Мудрость приходит со старостью!!! Но ... иногда старость приходит одна!
|
|
|
|
11.03.2014, 17:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Не могу подключить ds18b20
Сообщение от eddy
|
достаточно UART, который работает с 1-wire, посадить на DMA.
|
DMA в ATmega8515
Можно, конечно, наоборот, работать с 1wire через прерывания. Но и там есть определённые сложности.
|
|
|
|
12.03.2014, 10:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не могу подключить ds18b20
Сообщение от Godzilla82
|
DMA в ATmega8515
|
Ну, звиняйте, тогда просто через прерывания.
Сообщение от Godzilla82
|
Но и там есть определённые сложности.
|
Нет там никаких сложностей: сохраняем длительности всех бит, а как только слово целиком получено, обрабатываем и получаем слово.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
12.03.2014, 20:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Не могу подключить ds18b20
Сообщение от eddy
|
Ну, звиняйте, тогда просто через прерывания.
Нет там никаких сложностей: сохраняем длительности всех бит, а как только слово целиком получено, обрабатываем и получаем слово.
|
Зря вы так
Вот возникло другое прерывание - и длится 20 мкс. А нам уже бит защёлкнуть давным давно надо.
Ага. Значит надо разрешить прерывания внутри других прерываний.
Упрёмся в сохранение контекста.
На частоте 1 МГц - 15 мкс - это 15 тактов. А сохранение регистров в стеке, вход/выход в прерывание могут и все 50 тактов сожрать. Если не больше.
10 регистров сохранили/восстановили - это уже 40 тактов.
|
|
|
|
12.03.2014, 22:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не могу подключить ds18b20
Сообщение от Godzilla82
|
На частоте 1 МГц - 15 мкс - это 15 тактов.
|
Если идет счет на такты, то надо менять МК, а не пытаться из жопера выжать 300км/ч!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
12.03.2014, 22:23
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Не могу подключить ds18b20
Чей-то у меня все работает
|
|
|
|
12.03.2014, 22:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Не могу подключить ds18b20
Сообщение от Easyrider83
|
Чей-то у меня все работает
|
А я и не утверждал, что совсем не будет работать.
Просто, если следовать документации, состояние передаваемого бита нужно считывать не позднее 15 мкс от начала передачи бита. После этого правильное состояние бита не гарантируется. Возмжно, оно ещё 30 мкс там висит в неизменном виде.
И я расчитываю не на удачу, а на худшее стечение обстоятельств.
Понятно, что если выдерживать тайминги первые 20-25 мкс от начала передачи бита, всё будет работать. Но для этого надо грамотно всё реализовать. И тогда ничего не будет моргать, и считываться будет без ошибок.
|
|
|
|
13.03.2014, 00:19
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Не могу подключить ds18b20
Чего? Ничего не понял из написанного.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:21.
|
|