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

 
 
> 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



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:39
Рейтинг@Mail.ru


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