|
Вопрос по датчику, DS18B20 |
|
|
|
Jul 19 2007, 08:07
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Цитата(Anjey_N @ Jul 17 2007, 10:48)  Ещё вопрос. Для того чтобы записать конфигурационный байт нужно подать последовательно такие команды: - reset; - skip rom 0xCC; - write scratchpad 0x4E; - записать TH; - записать TL; - конфигурация.
Так ли это? А с завода датчики выпускаются с 12-резолюцией? Ещё один вопрос в догонку, скорее по написанию программы. В файле драйвера DS18B20 (пусть это будет DS18B20.c) я ввожу новую переменную. Например, flag_znak=0 если температура положительная и flag_znak=1 если температура отрицательная. А опрашивать эту переменную буду в другом файле (допустим main.c). Вопрос: как определить переменную (char? int? extern?) и в каком файле?
|
|
|
|
|
Jul 19 2007, 08:16
|

Местный
  
Группа: Свой
Сообщений: 243
Регистрация: 22-09-04
Из: Burbach, Germany
Пользователь №: 704

|
Цитата(Anjey_N @ Jul 19 2007, 11:07)  Ещё один вопрос в догонку, скорее по написанию программы. В файле драйвера DS18B20 (пусть это будет DS18B20.c) я ввожу новую переменную. Например, flag_znak=0 если температура положительная и flag_znak=1 если температура отрицательная. А опрашивать эту переменную буду в другом файле (допустим main.c). Вопрос: как определить переменную (char? int? extern?) и в каком файле? 1) В файле DS18B20.c определяете переменную: Код unsigned char flag_znak; 2) В файле DS18B20.h наряду с прототипами функций работы с термометром должна присутствовать строчка: Код extern unsigned char flag_znak; 3) В файле main.c должна присутствовать строчка: Код #include "DS18B20.h"
|
|
|
|
|
Jul 19 2007, 10:52
|

Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342

|
Цитата(ALexx @ Jul 19 2007, 11:16)  3) В файле main.c должна присутствовать строчка: Код #include "DS18B20.h" Маленькое дополнение: очень желательно, чтобы строчка Код #include "DS18B20.h" присутствовала также и в самом "DS18B20.с", для того чтобы компилятор имел возможность во время компиляции проверить соответствие типов объявленной и реализованной переменных. Иначе, если вы, например, внутри "DS18B20.с" поменяете тип этой переменной с unsigned на signed, но не отразите это в "DS18B20.h", то основная программа (в "main.c") будет по прежнему считать ее unsigned, что чревато крайне трудноуловимыми глюками.
--------------------
Gray©at
|
|
|
|
|
Jul 19 2007, 18:19
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Цитата(GrayCat @ Jul 19 2007, 13:52)  Маленькое дополнение: очень желательно, чтобы строчка Код #include "DS18B20.h" присутствовала также и в самом "DS18B20.с", для того чтобы компилятор имел возможность во время компиляции проверить соответствие типов объявленной и реализованной переменных. Иначе, если вы, например, внутри "DS18B20.с" поменяете тип этой переменной с unsigned на signed, но не отразите это в "DS18B20.h", то основная программа (в "main.c") будет по прежнему считать ее unsigned, что чревато крайне трудноуловимыми глюками. У меня всё заработало!!!!  Большое спасибо!!!!!!!
|
|
|
|
|
Jul 20 2007, 07:25
|

Частый гость
 
Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374

|
Цитата(M@T_F@Q @ Jul 19 2007, 22:18)  А можно сюда выложить программку, а то я 3 ночь с датчиком разбираюся. Можно, но попозже, когда со всеми глюками разберусь. краткие характеристики: Контроллер ATmega16, кварц на 16 МГц, динамическая индикация, 4-разрядный АЛС с ОА, 1 датчик DS18B20. Дай ссылку на почтовый ящик, закончу - вышлю.
|
|
|
|
|
Jul 20 2007, 07:33
|

Местный
  
Группа: Свой
Сообщений: 243
Регистрация: 22-09-04
Из: Burbach, Germany
Пользователь №: 704

|
Цитата(GrayCat @ Jul 19 2007, 13:52)  Маленькое дополнение: очень желательно, чтобы строчка Код #include "DS18B20.h" присутствовала также и в самом "DS18B20.с", для того чтобы компилятор имел возможность во время компиляции проверить соответствие типов объявленной и реализованной переменных. Иначе, если вы, например, внутри "DS18B20.с" поменяете тип этой переменной с unsigned на signed, но не отразите это в "DS18B20.h", то основная программа (в "main.c") будет по прежнему считать ее unsigned, что чревато крайне трудноуловимыми глюками. Это само собой. Любой с-файл, сопровождаемый h-файлом должен содержать в себе его объявление. Но за уточнение спасибо.
|
|
|
|
|
Jul 20 2007, 21:03
|

Участник

Группа: Участник
Сообщений: 65
Регистрация: 25-01-07
Из: Узбекистан
Пользователь №: 24 765

|
Цитата(Anjey_N @ Jul 20 2007, 12:25)  Можно, но попозже, когда со всеми глюками разберусь. краткие характеристики: Контроллер ATmega16, кварц на 16 МГц, динамическая индикация, 4-разрядный АЛС с ОА, 1 датчик DS18B20. Дай ссылку на почтовый ящик, закончу - вышлю. ООооо это было бы вобще классно. Мой емайл roman_1986@xnet.uz. Заранее спасибо!!!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|