Например TDA7294

Форум РадиоКот :: Просмотр темы - Датчик температуры (ds18b20) в Atmega32
Форум РадиоКот
https://radiokot.ru/forum/

Датчик температуры (ds18b20) в Atmega32
https://radiokot.ru/forum/viewtopic.php?f=57&t=176704
Страница 1 из 1

Автор:  vladozoff [ Вт апр 20, 2021 09:59:26 ]
Заголовок сообщения:  Датчик температуры (ds18b20) в Atmega32

Доброго времени суток! Подключаю к портуB микроконтроллера Atmega32(16Мгц) датчик температуры, написал код, чтобы в зависимости от температуры на сервомоторы подавались 1 или 0 , но всегда на сервомоторы подаются единицы при любой температуре.Что я делаю ни так ?

Вложения:
Комментарий к файлу: Изображение схемы
Снимок.PNG [14.72 KiB]
Скачиваний: 119
Комментарий к файлу: Код микроконтроллера
42.c [6.13 KiB]
Скачиваний: 101

Автор:  Ivanoff-iv [ Вт апр 20, 2021 10:22:45 ]
Заголовок сообщения:  Re: Датчик температуры (ds18b20) в Atmega32

1) справа на контакты энкопривода подано питание... это для чего?

Добавлено after 6 minutes 8 seconds:
2) не стоит инициировать 1вире ДО настройки внутренней периферии, в частности портов... (состояние регистров может затереться)

Добавлено after 2 minutes 18 seconds:
поставь проект на паузу и глянь, что у тебя в переменной темпер...

Автор:  *Trigger* [ Вт апр 20, 2021 11:46:56 ]
Заголовок сообщения:  Re: Датчик температуры (ds18b20) в Atmega32

Библиотека 1-Wire в CVAVR работает некорректно, если разрешены прерывания (т.к. задержки там отсчитываются по числу тактов МК, как в delay_us() и delay_ms()). На время работы с 1-Wire прерывания нужно запрещать.

Проще всего написать #asm("cli") и #asm("sei") перед и после измерения температуры. Более правильно будет модифицировать библиотеку для работы с DS18B20, запрещая прерывания только тогда, когда вызываются функции из 1wire.h.

Также, хоть это и не относится к проблеме с измерением температуры, нужно позаботиться об атомарном доступе к двухбайтовой переменной с результатом измерения АЦП.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/