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

 
 
 
Reply to this topicStart new topic
> DS18B20, Помогите с DS18b20
alexxack
сообщение Sep 12 2013, 12:09
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 26-06-13
Пользователь №: 77 280



Уважаемые форумчане помогите с датчиком. Прошивку взял с какого то форума выкинул из кода куски работы с дисплеем и оставил только код работы с датчиком. при совпадении с температурой должны зажигаться светодиоды на порту D. Порт PB0 используется для работы с датчиком.
Прикрепленные файлы
Прикрепленный файл  ds1820.zip ( 34.42 килобайт ) Кол-во скачиваний: 19
 
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Sep 12 2013, 12:14
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(alexxack @ Sep 12 2013, 16:09) *
Уважаемые форумчане помогите с датчиком. Прошивку взял с какого то форума выкинул из кода куски работы с дисплеем и оставил только код работы с датчиком. при совпадении с температурой должны зажигаться светодиоды на порту D. Порт PB0 используется для работы с датчиком.

а в чём, собственно, проблема?

Сообщение отредактировал Genadi Zawidowski - Sep 12 2013, 12:15
Go to the top of the page
 
+Quote Post
kovigor
сообщение Sep 12 2013, 12:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(alexxack @ Sep 12 2013, 15:09) *
Прошивку взял с какого то форума выкинул из кода куски работы с дисплеем

Теперь осталось выкинуть все остальное, взять CodeVision, в котором есть готовая библиотека для работы с этим датчиком, и написать свой проект самому. Это в 100 раз полезнее и познавательнее.
P.S. Посмотрел архив. Вникать в чужой проект на АСМе - то еще удовольствие. Рекомендую сделать проект самому, написав его на Си ...
Go to the top of the page
 
+Quote Post
alexxack
сообщение Sep 12 2013, 12:27
Сообщение #4





Группа: Участник
Сообщений: 12
Регистрация: 26-06-13
Пользователь №: 77 280



Цитата(Genadi Zawidowski @ Sep 12 2013, 16:14) *
а в чём, собственно, проблема?

Датчик выдает в порты только 1-цы


Цитата(kovigor @ Sep 12 2013, 16:15) *
Теперь осталось выкинуть все остальное, взять CodeVision, в котором есть готовая библиотека для работы с этим датчиком, и написать свой проект самому. Это в 100 раз полезнее и познавательнее.
P.S. Посмотрел архив. Вникать в чужой проект на АСМе - то еще удовольствие. Рекомендую сделать проект самому, написав его на Си ...

Дело в том что проект в который будет внедрен данный кусок кода написан на асме и написать что либо на си не вариант.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Sep 12 2013, 12:39
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(alexxack @ Sep 12 2013, 15:27) *
Датчик выдает в порты только 1-цы
Дело в том что проект в который будет внедрен данный кусок кода написан на асме и написать что либо на си не вариант.

Ну, тогда самому вникать в чужой проект, или писать свой. Или сразу писать весь проект на Си, а не на АСМе, что почти наверняка сэкономит массу сил и времени.
А пока можете посмотреть осциллографом, что реально происходит на шине. И вот еще что: порт, к которому подключен датчик, правильно настроен ?

А вот еще, с самого начала:
Код
;*****************************************************
        ldi        wreg, 0xFF; Portb выход
        out        DDRD, wreg
;******************************************************

Выход ? И что туда выводится ? Ноль, судя по даташиту на МК. А так можно ? Вы вот тут же пишете:

Код
rcall     ds_reset     ; вызов обнуления линии

..............

ds_reset:
        cbi         PORTB,    PB0

А зачем, если там и без того ноль ?
Это первый косяк. А сколько их еще ? Может, вы их лучше сами переловите ?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Sep 12 2013, 16:07
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Код
ds_reset:

        cbi         PORTB,    PB0

        ldi        wreg, 0xFF            ; Portb выход
        out        DDRB, wreg

        ldi     wreg,     209            ; обнуление 600мкс
        rcall     ds_delay
        
        ldi        wreg, 0xFE            ; Portb.0 вход
        out        DDRB, wreg
        
        ldi     wreg,     209         ; принятие импульса присутствия 600мкс
        rcall     ds_delay

Где возврат из этой подпрограммы , где проверка присутствия датчика?

Цитата
весь проект на Си, а не на АСМе, что почти наверняка сэкономит массу сил и времени.
Ну не надо , я Вас умоляю. biggrin.gif


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 12 2013, 16:29
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(kovigor @ Sep 12 2013, 16:39) *
Это первый косяк. А сколько их еще ?

Функция ds_reset - какая-то странная: похоже, что что-то от неё случайно "отрезали". Возможно, "принятие импульса присутствия 600мкс" - так и задумано: не принимать, а просто пропустить по-времени... Но! Куда пропал оператор ret ?
Go to the top of the page
 
+Quote Post
Catcatcat
сообщение Sep 14 2013, 09:09
Сообщение #8





Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Пользователь №: 34 859



Вот ссылка на библиотеку http://catcatcat.d-lan.dp.ua/skachat/bibli...aturyi-ds18b20/ может пригодиться. Библиотека для работы по одной шине до 16 датчиков.
Go to the top of the page
 
+Quote Post
Игoрь
сообщение Sep 15 2013, 15:54
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 15-05-13
Пользователь №: 76 836



могу поделиться своей рабочей программкой для тини13, дс1820 и дисплея нокия 1202
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:23
Рейтинг@Mail.ru


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