Ребята помогите пожалуйста с DS1820

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Родился
Сообщения: 7
Зарегистрирован: Ср сен 02, 2015 20:20:54

Сообщение alex13sh »

В этой функции Пока проблем не обнаружено. Если ты про операторы: Or, And, Xor - то они в результат выдают не 1ин бит, а как раз таки побитовый результат, а вот замена побитового сдвига влево (деление) вроде дополнительных условия не нужны.
А вот readRAM нормально не принимает массив байт.
Я уже на vb6 забил...
Из-за корявых строк и из-за пару багов. Например был старый и новый проект отличавшийся парами новыми функциями, и теперь новый проект не работает совсем, даже старые функции. В старом проекте GetRAM принимает массив из 9ти элементов и все они 255, в новом проекте все они по нулям...

Сейчас решил написать эту программу на PIC16F628A , на нём считать температуру, а потом через компорт передавать, а на компе график строить.
Вот даже нашёл исходник для пика в среде MPLAB и компиляторе HI-TECH-PICC .
В этом исходнике в процедуре Reset (для датчика), проверяет на 2е ошибки: Присутствие хоть одного датчика, и короткое замыкание. Все 2е ошибки срабатывают, вроде схему нарисовал по шаблону, и игнорирование этих ошибок ничего не дают...

Я прикреплю 2ва проекта: MPLAB и Proteus.
Вложения
ds1820.zip
Proteus. Схема основная и для Дебага (доп. СветоДиод)
(58.88 КБ) 127 скачиваний
PIC(2)_ds1820_2.X.zip
MPLAB PICds1820
(75.9 КБ) 131 скачивание
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Если на VB не получается, то можно к программе прикошачить DLL OWire_Module.dll или подобную, что предлагал ранее.
alex13sh писал(а):В старом проекте GetRAM принимает массив из 9ти элементов и все они 255, в новом проекте все они по нулям...
Можно запустить пошаговую отладку с отслеживанием переменных и посмотреть что и где идет не так.
Реклама
Родился
Сообщения: 7
Зарегистрирован: Ср сен 02, 2015 20:20:54

Сообщение alex13sh »

спасибо за быстрый ответ.
Сейчас расскажу какие проблемы в кратце.
Vb6 и длл: Он не может подключится к порту, думаю из-за проблем со строками в vb6 темболее используя АПИ . Я даж в функцию OpenPort отправлял массив байт "СОМ1", ни в какую - ошибка подключение.
Потом я пробовал VB6 и MSCommon (вроде), короче контролл для коммпорта. Ну , смог серийный номер считать, и то отражённый. А вот дальше не продвинулся.. Вот сторонняя прога на PB и Делфи работают, т.е. всё подключено правильно. Я кстате от Phaeton-а , с ним на две голов думаем.
Потом бросил и решил вникнуть по-быстренькому в PIC и MPLAB. Нашёл же исходник на си, всё дляя меня понятно, всё разобрал. А вот не идёт как надо..
Ща ещё пару дней поэксперементирую, мож методом тыка. Параллельно почитываю датшит, и разные исходники разбирать.

Если есть какие то мысли как продвинутся, пишите))
Благодарю за отклик)
Родился
Сообщения: 7
Зарегистрирован: Ср сен 02, 2015 20:20:54

Сообщение alex13sh »

Мурик писал(а):Можно запустить пошаговую отладку с отслеживанием переменных и посмотреть что и где идет не так.
Запускал. Функция readBit принимает Байт, и если равен 255 то бит равен 1, если 252, то бит равен 0. Старый проект нормально примал, серийник читал. А новый, не знаю что испортилось, но даж серийник не читает, т.к. readBit принимает байт либо 4 , либо 76, а 255 не бывает, т.е. все биты понулям.. Походу заглючал сам контролл.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

alex13sh писал(а):Я даж в функцию OpenPort отправлял массив байт "СОМ1", ни в какую - ошибка подключение.
Работает.

Код: Выделить всё

Private Declare Function OW_OpenPort Lib "OWire_Module.dll" (ByVal var As String, ByVal Port As Long) As Long

Private Sub Command1_Click()
  Dim x As Long
  x = OW_OpenPort("COM1", 0)
  MsgBox x
End Sub
Реклама
Родился
Сообщения: 7
Зарегистрирован: Ср сен 02, 2015 20:20:54

Сообщение alex13sh »

Я делал точно также + я декларировал функцию getErrorLast. И он показывал в такой момент ошибку 1 - Нет подключений, и иногда 6 - неправильный набор аргументов.
При использовании функции конвертации температуры, он так же показывал ошибку 1...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Значит в программе ошибка. А не видя кода, сложно сказать где она.
Родился
Сообщения: 7
Зарегистрирован: Ср сен 02, 2015 20:20:54

Сообщение alex13sh »

Написал проект для PIC: считал значение температуры датчика и если оно больше 36 градусов, то загорался светодиот, иначе тух.
Ну вот код некрассив, решил разбить на 2 класса. Однако компилятор (Hi-Tech PICC) ругается на использования классов. Есть ли компиляторы для С++ а не Си.
Да и вообще, возможно ли использовать класса в контроллерах. Я прост без классов не комфортно себя чувствую..
Ответить

Вернуться в «Интеграция с ПК»