|
Нужны реальные исходники для DS18B20 и WINAVR, на шине 1 датчик (просто запарился от обилия разной информации) |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 22)
|
Jan 22 2008, 12:04
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(011119xx @ Jan 22 2008, 15:23)  Прошу простить за открытие темы, т. к. такие уже были. Нужны реально рабочие исходники, а не список ссылок, этого у меня навалом. Простите. Вы знаете, при работе с DS1820 из оборудования применяется только одна линия порта (иногда таймер для формирования задержек). Поэтому запрошенные вами исходники написанные на Си будут максимально не зависимы от компилятора. Иными словами подойдут ЛЮБЫЕ. Здесь их предлагалось - куча. В том числе и мной. Исходя из множества постов, что в WinAVR какие то непонятки с формированием задержки средствами компилятора (точнее непонятки у людей), я думаю что у вас таже проблема. Там только одна задача - правильно сформировать временную диаграмму. Для того, чтобы сдвинуться с мёртвой точки напишите текст типа "выставить единицу-задержка 1-выставить 0 -задержка 2" и проверьте правильность формирования по осциллографу.
|
|
|
|
|
Jan 22 2008, 13:09
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(GDI @ Jan 22 2008, 15:49)  У 18S20 другой код устройства а в остальном они совместимы... Но, имхо, имея на руках кучу исходников, добавка еще одного не даст ничего, если нет глобального понимания работы железа и выбранного компилятора. Не только код. Еще разное количество значащих бит в регистре температуры, у s20 разрешающая способность == 0.5С, у B20 ==0.0625С. А код устройства при одном датчике вообще не важен - SKIP_ROM и нет проблем.
|
|
|
|
|
Jan 22 2008, 20:24
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 3-09-06
Из: Архангельск
Пользователь №: 20 038

|
Выкладываю реально рабочий проект....Писал не я, но использовал приведенные функции и все работает отлично!! Написано под WinAVR.....Пользуйтесь на здоровье!!
|
|
|
|
|
Jan 23 2008, 08:40
|

Местный
  
Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544

|
Цитата(SasaVitebsk @ Jan 23 2008, 13:35)  Это не проблема Сейчас пробую вашу библиотеку. Как в главной функции правильно использовать библиотеку? Можно так? u16 ds; int main(void) { //Инициализация прочего convert_temp_short(); for(u8 i=0; i<80; i++) _delay_ms(10); ds = read_temp_short(); while(1) { //Передача значения ds по usart } }
Сообщение отредактировал 011119xx - Jan 23 2008, 09:08
|
|
|
|
|
Jan 24 2008, 07:51
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
У 18S20 можно управлять разрешением, по-умолчанию там стоит 9 бит, зато и измеряет быстрее, ~100мс, но можно поставить и 12 бит как изначально и неменяемо стоит в 18B20 и получать те же 0,0625... только надо ли это? С завода датчик калиброван( и тот и другой) на точность 0,5 градусов, а чтобы получить точность выше, а не только разрешение, надо калибровать датчики.
--------------------
|
|
|
|
|
Jan 24 2008, 08:39
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(GDI @ Jan 24 2008, 10:51)  У 18S20 можно управлять разрешением, по-умолчанию там стоит 9 бит, зато и измеряет быстрее, ~100мс, но можно поставить и 12 бит как изначально и неменяемо стоит в 18B20 и получать те же 0,0625... только надо ли это? С завода датчик калиброван( и тот и другой) на точность 0,5 градусов, а чтобы получить точность выше, а не только разрешение, надо калибровать датчики. Все верно, но буквы "S" и "B" нужно поменять местами  .
|
|
|
|
|
Jan 24 2008, 11:03
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(xemul @ Jan 24 2008, 11:39)  Все верно, но буквы "S" и "B" нужно поменять местами  . Нет, не все  Время конвертации у S20 совсем не 100мс, а до 750мс. Так что не особо и быстрее.
|
|
|
|
|
Jan 24 2008, 12:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Цитата Все верно, но буквы "S" и "B" нужно поменять местами smile.gif. Давно я с ними работал, может и действительно буковки поменять надо..  Цитата ет, не все smile.gif Время конвертации у S20 совсем не 100мс, а до 750мс. Так что не особо и быстрее. На 9 бит примерно 100мс, на 12 бит - 750мс, просто у одной можно поменять разрешение, а у другой - нет. Новые они все на 12 бит настроены.
--------------------
|
|
|
|
|
Jan 24 2008, 14:36
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(GDI @ Jan 24 2008, 15:15)  На 9 бит примерно 100мс, на 12 бит - 750мс, просто у одной можно поменять разрешение, а у другой - нет. Новые они все на 12 бит настроены. Даташит говорит совсем другое - S20: 9-bit thermometer resolution Converts temperature in 750ms (max.) Никаких 12 бит и 100мс не упоминается.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|