|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.04.2019, 02:03 | #1 |
Новичок
Джуниор
Регистрация: 19.04.2019
Сообщений: 2
|
Греются ds18b20, нет ответа. Atmega328p
Не пойму почему не работает программный 1-Wire на 328 меге. Может я там где-то что-то с портами напутал? Диод мигает с частотой в 0.5 Гц, как положено. Дисплей по i2c пашет, часы тоже. Подлючал gnd, 5v, а между ними пин на пин В1 с подтяжкой к нему 5v через резистор 4, потом еще 10 кОм пробовал.
Дописал проверку присутствия устройств на шине, если ответа нет, то мигает диод - мигает бл.... Ответа нет. Что делать? Текст библиотечного/хэдерного файла 1-WIRE: Код:
|
19.04.2019, 02:04 | #2 |
Новичок
Джуниор
Регистрация: 19.04.2019
Сообщений: 2
|
Майн:
Код:
|
19.04.2019, 14:54 | #3 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,617
|
Если долго не ответят (тут Atmel-щиков мало), можно попробовать
https://radiokot.ru/forum/viewtopic.php?f=57&t=21695 Просто почитать тему; если прояснения не произойдет - зарегиться и спросить. Народ в основном доброжелательный, скорее всего помогут. Сам я Atmel-щик, но DS-кой этой не занимался и для Мег пишу на асме, не люблю я Си для МК. |
11.09.2020, 07:08 | #4 |
Новичок
Джуниор
Регистрация: 11.09.2020
Сообщений: 1
|
Возможно поздно ответил, но: во-первых датчикам незачем греться (либо испорченные, либо не правильно подключенные), во-вторых проверяй железо на сторонней "испытаной" программе.
|
11.09.2020, 11:51 | #5 |
Старожил
Регистрация: 19.06.2013
Сообщений: 2,469
|
Согласен.
Репутация: полный "0"
|
04.07.2021, 23:13 | #6 |
Новичок
Джуниор
Регистрация: 04.07.2021
Сообщений: 4
|
Возможно, я ещё более поздно ответил. Но лучше поздно, чем никогда.
--- Насколько я понял, написанная выше программа программирует пин процессора на выход и выдаёт сигналы датчику DS18B20. Если это так, то это ошибка и датчики могут греться и выйти из строя вместе с пином процессора. ---- я делал так: 1. Спрограммируем пин "на ввод" в регистре направления, а в регистр данных пина занесём 0. 2. Когда надо выдать 0 датчику, программируем в регистре направления пин "на вывод" . На пине появится 0. 3. когда надо выдать 1 датчику, программируем в регистре направления пин "на ввод" . Подтягивающий резистор обеспечит подъём уровня к 1. Т.е. программа должна манипулировать только регистром направления, иначе на шине может быть аппаратный конфликт. --- Кстати, эти датчики бывают ещё и разных видов. Это можно узнать по сигнатуре в ROM и алгоритм добычи температуры будет (увы !) различаться. Последний раз редактировалось AlexInch; 04.07.2021 в 23:27. |
05.07.2021, 10:37 | #7 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,617
|
Очень своевременно, всего чуть больше 2 лет прошло.
Метод получения 2-направленной линии, конечно, нормальный. Мне его в своё время подсказали для I2C. Лет 30 назад ---------------- Судя по языку, новичок ТС - не из России? Последний раз редактировалось digitalis; 05.07.2021 в 10:40. |
05.07.2021, 12:20 | #8 | |
Новичок
Джуниор
Регистрация: 04.07.2021
Сообщений: 4
|
Цитата:
--- Про 30 лет это я не очень понял. 30 лет назад AVR не было - они появились приблизительно в 1999-2000 году. У микроконтроллеров ранних времён так порты не программировались (насколько я знаю). |
|
05.07.2021, 21:50 | #9 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,617
|
Так время медленно движется - мне показалось, что 30 лет. А всего-то 25 В конце 90-х я активно переводил свои дивайсы с ST62ХХ на АВР-ки. А управление портами не менялось в них с их рождения. Потом были нюансы. Например, запись бита в PINA (вроде бы бессмысленное по логике занятие) приводило к инверсии соотв. бита в PORTA (режим Т-триггера). Но основа не менялась.
|
06.07.2021, 14:02 | #10 | |
Новичок
Джуниор
Регистрация: 04.07.2021
Сообщений: 4
|
Цитата:
А мне всегда казалось, что с возрастом время летит всё быстрее и быстрее. Это в школе время тянулась, как резинка. А сейчас посмотрел в окно два раза - 1-й раз осень, 2-й - уже весна. А я переводил на AVR проекты с MCS51. А бывало, и наоборот. Так у 51-х вообще просто - у них опен коллектор/опен сток в портах. Допускает "монтажное или" со всем, чем надо. Всё получается само собой. |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Неправильно работает функция rand() на микроконтроллере ATMEGA328P | Marcus75 | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 8 | 14.11.2019 13:34 |
Cчитывание измеренной температуры с датчика DS18B20 в Excel, используя библиотеку RSAPI.DL | aizhan0212 | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 57 | 17.09.2017 22:25 |
Помощь с программой тестом на Delphi. Не знаю как сделать чтобы был выбор ответа и определение верного/не верного ответа и итог? | KiberVioNet | Lazarus, Free Pascal, CodeTyphon | 7 | 30.09.2015 09:02 |
жду ответа | вовик 82 | Помощь студентам | 1 | 27.05.2011 11:15 |