реклама на сайте
подробности

 
 
> DS18B20 and ATTiny2313
Arlleex
сообщение Jan 28 2012, 21:24
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Цитата
// sensor_write_1_0 - функция записи 1/0
// bit - 0/1 => запись 0/1
void sensor_write_1_0(uint8_t bit)
{
if (bit==0)
{
DDRB=DDRB | (1<<DQ); // запись 0
_delay_us(100); // задержка 100мкс
DDRB=DDRB & 0xFE; // запись 1
}
else if (bit==1)
{
DDRB=DDRB | (1<<DQ); // запись 0
DDRB=DDRB & 0xFE; // запись 1
_delay_us(100); // задержка 100мкс
}
}
// sensor_read_1_0 - функция чтения 1/0
uint8_t sensor_read_1_0(void)
{
// объявление переменных
uint8_t bit; // данные DQ
DDRB=DDRB | (1<<DQ); // запись 0
DDRB=DDRB & 0xFE; // запись 1
bit=PINB & 0x1; // чтение состояния линии DQ
_delay_us(100); // задержка 100мкс
if (bit==0x1)
{
return 1; // возвращение 1
}
else if (bit==0x0)
{
return 0; // возвращение 0
}
}

Сопрягаю микроконтроллер ATTiny2313 с датчиком температуры DS18b20.
Сам процесс записи и чтения бита - вверху.
Но собственно вопрос - при отладке обнаружил, что не работают данные функции. Возможно не совпадают временные интервалы протокола 1-WIRE.
Для удобства приведу временные диаграммы:

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение Jan 29 2012, 09:10
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (Arlleex @ Jan 29 2012, 05:24) *
Для удобства приведу временные диаграммы:

Протокол 1-wire достаточно прост, если работать с одним устройством. Попробуйте разобраться самостоятельно, либо найдите в инете примеры, их очень много. У меня датчик опрашивается даже под операционной системой...
Удачи!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Jan 29 2012, 11:09
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Цитата(haker_fox @ Jan 29 2012, 13:10) *
Протокол 1-wire достаточно прост, если работать с одним устройством. Попробуйте разобраться самостоятельно, либо найдите в инете примеры, их очень много. У меня датчик опрашивается даже под операционной системой...
Удачи!

Да вот и пытаюсь разобраться самостоятельно. Все делаю как в протоколе (учитывал время выполнения операций, для "опускания" некоторых временных интервалов).
Но ничего толкового не получается.
Ладно, буду дальше разбираться, перекапывать весь код, спасибо sm.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 03:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.0163 секунд с 7
ELECTRONIX ©2004-2016