Зарегистрирован: Вс май 28, 2017 15:49:14 Сообщений: 2
Рейтинг сообщения:0
Всем привет! Только начинаю программировать МК. Пытаюсь сделать термометр на ATmega8 и DS18B20. Делаю в Bascom, а не на Си. Мк не видит датчик, т.е. на шине 1 wire все время логическая единица, на экране 127. Подтяжка шины к питанию есть. Датчик на шине один. Пробовал подключать к ногам 9 и 10 (порт B6 и B7). Пробовал менять сам датчик. Ставил в две разные схемы с 16*2 экраном и с трехразрядным динамическим индикатором. Все одно и то же. Подскажите, может есть кака-то особенность, 1-wire работает не на всех портах, или еще что-то, м.б фьюзы. Читал много статей в инете про подключение, везде написано что подключается просто. Код брал отсюда http://cxem.net/mc/mc181.php
собери вхему в протеусе - там и детали исправные и схему на обозрение выложить проще
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Для начала выложите СВОЮ схему и СВОЙ код, а не ссылки на сторонние ресурсы. Схему желательно в графическом формате, а не файл "Протеуса" - он не у всех есть. Код - просто текст, а не файл с раcширением bas.
_________________ Лом - это сложное техническое устройство.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Во-первых, судя по схеме и коду, у вас используется внутренний RC-генератор, максимальная частота которого 8 МГц, а в коде прописано
Цитата:
$crystal = 16000000
Непорядок. Исходя из этого компилятор рассчитывает все временные параметры. Исправляйте. Во-вторых, UART у вас, похоже, тоже не используется. Тогда есть смысл отдать весь порт D под управление сегментами индикатора, а порт C - под управление разрядами. Получилось бы значительно проще - не было бы вот этой бесконечной вереницы:
Почитайте про динамическую индикацию хотя бы здесь В дальнейшее я особо не вникал, но вот здесь
Цитата:
X = X + 1 If X = 100 Then Portc.5 = 0 Call Temp X = 0
Else End If
"Else" - не нужно. И далее в аналогичных конструкциях тоже. "Else" необходимо в тех случаях, когда при несоблюдении условий, указанных после "If", нужно пропустить действия, указанные после "Then" и перейти к другим действиям, которые описаны после "Else". Например: If A=10 Then Set Portb.0 Else Incr A End If Это все в Helpe описано. Еще хорошо описано в книге "СПРАВОЧНИК ПО ПРОГРАММИРОВАНИЮ BASCOM-8051", автор Кулиш М.Л. СпойлерIF, ELSE , ELSEIF, END IF Действие: Проверить условия, в результате которых выполняются или пропускаются указанные действия. Производится проверка значений и сравнение всех типов переменных, включая значения отдельных битов одно-, двух- и четырехбайтных переменных!!! Синтаксис: 1-я конструкция. Исполняется действие Action 1 если выполнено условие expression 1: IF expression 1 THEN ‘Action 1 END IF 2-я конструкция. Исполняется действие Action 1 если выполнено условие expression 1 и Action 2 если не выполнено: IF expression 1 THEN ‘Action 1 ELSE ‘Action 2 END IF 3-я конструкция. Исполняется Action 1, если выполнено условие expression 1, Action 2 если не выполнено, однако при условии выполнения expression 2, и Action 3, если не выполнено ни одно из предыдущих условий. Может быть задано несколько проверок дополнительных условий: IF expression 1 THEN ‘Action 1 ELSEIF expression 2 THEN ‘Action 2 ELSE ‘Action 3 END IF Пример 1: DIM A AS INTEGER A = 10 IF A = 10 THEN ‘проверка PRINT « This part is executed.» ‘это отпечатается ELSE PRINT « This will never be executed.» THEN PRINT «BIT 15 IS SET» END IF REM Пример использования в одной строке IF THEN IF A.15 = 0 THEN PRINT «BIT 15=0» ELSE PRINT «BIT 15=1» END IF Пример 2: Dim X As Integer ‘новая возможность проверки – сравнение со значением символа If X = "A" Then 'when X = 65 the test will pass Пример 3: ‘новая возможность проверки – запись опертора в одну строку If X = 10 Then Goto M1 Else Goto M2
_________________ Лом - это сложное техническое устройство.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения