ATMega8 и DHT11

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 45
Зарегистрирован: Ср апр 23, 2014 22:17:24

Сообщение Triple_H »

Dimon456, Благодарю тебя мил человек, был бы рядом расцеловал ))) Работает!!!
Оно похоже и мой код работало бы, если бы не косяк с частотой, компилирую ваш код, у меня все равно на 8 МГц не работает, что то значит компилирую не так, завтра надо будет со студио покавыряться, где то косяк ))
Реклама
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Triple_H писал(а):что то значит компилирую не так, завтра надо будет со студио покавыряться
Вы должны в студии частоту поменять.
У меня не установлена студия, может быть посмотреть в "Project - ... Properties" поискать что-то вроде "Toolchain" - "Symbols" строчка "F_CPU=...".
И еще оптимизацию надо бы сменить с -O1 на -Os.

Добавлено after 5 hours 53 minutes 50 seconds:
Ну и сколько у вас этот гигрометр (DHT11) показывает?
У меня:
- температура 22 (измеренная "другим прибором" 25,4)
- влажность 17 (измеренная "другим прибором" 64%)

Для справки: измеренная на улице "другим прибором" в тени
- температура 31,2 (онлайн гидрометцентр 28)
- влажность 43% (онлайн гидрометцентр 40%)
Реклама
Открыл глаза
Сообщения: 45
Зарегистрирован: Ср апр 23, 2014 22:17:24

Сообщение Triple_H »

Dimon456 Вы должны в студии частоту поменять Это тайна покрытая мраком )) Гугление пока не дало результатов, но да мне сегодня и некогда было, но как я понял в 4 еще была такая возможность, а в 7 там что то изменили. Обновил вот до последней, буду там ковыряться и гуглить )) Вообще как бы F_CPU сначала прописываешь в коде и должно менять автоматически, но что то там может подглючивает, буду с последней версией экспериментировать. Если найду отпишусь, может еще кому пригодится, но раньше такой проблемы не было, и термометры на DS18B20 собирал.

Ну и сколько у вас этот гигрометр (DHT11) показывает? Ну термометр так пару градусов разногласие с контрольными )) В принципе меня устраивает, нормальная погрешность.
А вот гигрометр проверить нечем, но показывает 40 процентов, в принципе может так и есть в комнате )) У меня еще второй датчик был, я забыл куда его положил, выйду на работу посмотрю, может там остался, сравнить показания двух одинаковых датчиков.
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Triple_H, попробуйте так: Project -> Properties... (Alt+F7)
Toolchain -> AVR/GNU C Compiler -> Optimization (Optimize for size (-Os))
Toolchain -> AVR/GNU C Compiler -> Symbols (Нажать на плюс и добавить строчку) (F_CPU=8000000UL)
картинки
СпойлерИзображение Изображение
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 45
Зарегистрирован: Ср апр 23, 2014 22:17:24

Сообщение Triple_H »

Dimon456, Еще раз благодарю, да я вот тоже только нагуглил про В свойствах проекта "AVR/GNU C Compiler" -> "Symbols" добавить в "Defined symbols" параметр "F_CPU=частота", работает проверял, менял на 1 и 8, вон она оказывается где собака зарыта была ))
Реклама
Встал на лапы
Сообщения: 105
Зарегистрирован: Пн сен 01, 2014 10:57:51
Откуда: Челябинск

Сообщение Vladik84 »

Здравствуйте. Пытаюсь подключить DHT11 к ATmega8. Подскажите, что писать в обработчик прерываний?
Спойлер
main.c
(2.89 КБ) 31 скачивание
Кусок кода с настройкой дисплея и инициализацией портов мой, с прерываниями и инициализацией датчика DHT11 авторский (из сети). Там в авторском тексте в обработчике стоит единственная переменная flag1, которая нигде больше не встречается кроме объявления вначале. На экран 1602 в Протеусе выводится ноль, даже если датчик отключить. Вывод символов работает нормально, а вот измеренное значение не выводится; похоже, что я ещё и с настройками таймера намудрил, не по даташиту смотрел, полагался на автора статьи.
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

Vladik84, там нет "прерываний", только обработчик для INT0. И какой еще таймер? У вас таймер в этом коде вообще никак не используется.
Возьмите лучше вот это: https://github.com/efthymios-ks/AVR-DHT
Там тоже нет таймера, на delay сделано, но должно работать.
Встал на лапы
Сообщения: 105
Зарегистрирован: Пн сен 01, 2014 10:57:51
Откуда: Челябинск

Сообщение Vladik84 »

[uquote="NStorm",url="/forum/viewtopic.php?p=3966717#p3966717"]Vladik84, там нет "прерываний", только обработчик для INT0. И какой еще таймер? У вас таймер в этом коде вообще никак не используется.
Возьмите лучше вот это: https://github.com/efthymios-ks/AVR-DHT
Там тоже нет таймера, на delay сделано, но должно работать.[/uquote]

Спасибо) Просто кое-где INT0 называют Внешним прерыванием. Да, настройки не таймера, а регистров, для работы с внешними прерываниями) На задержках я до этого пытался сделать самостоятельно, не получилось, взял готовый вариант с INT0 - тоже не удалось. Попробую вами предложенный вариант.
Контактная информация:
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс фев 21, 2021 13:01:40
Откуда: Прокопьевск

Сообщение Михаил_avr »

https://guesto.ru/atmega-rabota-s-datchikom-dht11/
Тут вообще без таймера можно сделать

Добавлено after 3 minutes 48 seconds:
Там и с дисплеем есть программа

Добавлено after 4 minutes 23 seconds:
И без прерываний

Добавлено after 25 minutes 17 seconds:
Второй код только поправить чуть надо
Ответить

Вернуться в «AVR»