Старая песня на новый лад - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Форум Picbasic.ru » Электроника » Проблемы » Старая песня на новый лад (Симуляция датчика DS18B20 в протеусе 7.2SP6)
Старая песня на новый лад
Prototup Дата: Сб, 07.03.2009, 17:33  |                                                                                                                Сообщение # 1
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 09.11.2008

Статус: Offline

Проблема в следующем: написал програмку, откомпилировал. Всё ОК! , но то-ли я где-то накосячил в самой проге, толи глюк самого Протеуса, но видно, что обмена между профессором и датчиком нет! Хотя судя по логическим состояниям он есть, только что там происходит и почему на индикаторах одни нули? surprised
* Name : UNTITLED.BAS *
'* Author : [Prototup] *
'* Notice : Copyright © 2009 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 07.03.2009 *
'* Version : 1.0 *
'* Notes : Катоды индикаторов подключены к PortA.1,2,3
*
'* : Частота 4Мгц, профессор 16F628А *
'****************************************************************
Symbol Cifra = PORTB' Вывод анодов индикаторов
Info var PORTA.0 ' Подключение DATA к DS 1820
Temperature1 var word ' Переменная где будут хранится
'считанные данные
Temperature var Temperature1.byte1
Numb var Byte ' Вспомогательная переменная
i var Byte 'Переменная - счётчик циклов
count_remain Var Byte
count_per_c Var Byte
Init: 'Инициализация
TRISB=$000 ' установим PORTB на выход
PORTB=$000 ' Установим PORTB в 0
TRISA=%0000000 ' Установим PORTA на выход
PortA=%0000000 'Установим PORTA в 0
OWOut Info, 1, [$CC, $44]
'Основная программа
main:
OWOut Info, 1, [$CC, $44]
OWOut Info, 1, [$CC, $BE]
OWin Info, 0, [Temperature, Skip 4, count_remain, count_per_c]
Pause 5
FOR i=0 TO 2 'i - Счётчик циклов
Numb = Temperature Dig i ' Вычисление десятичного разряда
GoSub convert ' Переход к подпрограмме convert
Select case i
Case 0
PORTA.3 = 1 'Включить катоды соотв. индикаторов
CASE 1
PORTA.2 = 1
CASE 2
PORTA.1 = 1
CASE ELSE
PortA.4 = 1' ERROR если в программе что-то не так
END SELECT
Pause 40
PORTA.3=0 'Гашение катодов индикаторов
PORTA.2=0
PORTA.1=0
PortA.4 = 0
Cifra=$000 'Обнуление информации на PortB
Next i
Goto main
Convert:
Lookup Numb, [$3F,$0C,$B6,$9E,$CC,$DA,$F8,$0E,$FE,$CE], Cifra
Return
Прикрепления: Termometr1.dsn(92Kb)
ЯНДЕКС Дата: 07.03.2009
ГыГы Дата: Вс, 08.03.2009, 16:53  |                                                                                                                Сообщение # 2
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 17.02.2009

Статус: Offline

В протеусе DS1820 работает замечательно.
А где прошивка ? Вы выложили только проект. smile
Да и сжимать бы нужно файлы.
Prototup Дата: Пн, 09.03.2009, 12:25  |                                                                                                                Сообщение # 3
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 09.11.2008

Статус: Offline

Извини, удалённый друг, спасибо что откликнулся! Мозги уже дымятся неделю. Не могу понять в чём ошибка. sad Высылаю текст программы и прошивочку, а также повторно схему! За мной пиво!, если живёшь в Москве. biggrin
Прикрепления: 1168326.rar(49Kb)
Prototup Дата: Вт, 10.03.2009, 00:02  |                                                                                                                Сообщение # 4
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 09.11.2008

Статус: Offline

Сам му-ак! Всё сделал сам, исправил! Ну кто знал што в Проктеусе нельзя ставить батарейку на место источника питания +5В? В программе все косяки исправил. Считывает и показывает температуру с точностью до 0,5 градуса, только в минус врёт, но там другие вычисления нужны. Думаю что смогу довести точность показаний до 0,1гр(чуть доработать вычесления). Ну пока на этом остановлюсь, что-то устал от собственной бестолковщины. Кому интересно- смотрите. Прошивочка и схемка в Проктеусе 7.2SP6 - прилагается!
Прикрепления: 9679305.rar(49Kb)
ГыГы Дата: Вт, 10.03.2009, 19:46  |                                                                                                                Сообщение # 5
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 17.02.2009

Статус: Offline

В "-" врёт это правда, но скорее всего это уже глюк протеуса.
Помниться я когда делал он и в "+" врал, уже не помню. Я помню корректировал програмно, потом на железе собрал, оказалось что протеус нагло врал, пришлось корректировку убирать.
Тестировал на образцовом термометре.
Quote
с точностью до 0,5 градуса
У меня до 0.1 мерил. Но может это вовсе не точность, а всего-лишь дискретность измерения. Хотя, я сделал регулятор, держал до 0.1С .
Prototup Дата: Вт, 10.03.2009, 21:30  |                                                                                                                Сообщение # 6
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 09.11.2008

Статус: Offline

Согласен, но у меня работает без коррекции и не врёт в +, достал и посмотрел даташит на датчик и сделал сваял программу. Пришлось только BCD число помножить на 10, а потом разделить на 2, (что бы получить правильные показания) т.к у меня всего 3 разряда (индикатора), пришлось пожертвовать сотнями. Что касается дискретизации, то симулируется датчик по 0,5гр. Чтобы получить показания с точность 0,1гр реально, а не в Проктеусе, нужно что-то вычислить с применением остатка счёта "count_remain", но с этим разберусь попозже!
Сообщение отредактировал Prototup - Вт, 10.03.2009, 21:35
ГыГы Дата: Вт, 10.03.2009, 23:47  |                                                                                                                Сообщение # 7
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 17.02.2009

Статус: Offline

В свойствах датчика меняеться. 0.1 ставиться там, посмотри.
Вот мой проект http://cxem.net/mc/mc33.php там есть проект протеуса, посмотри.

Сообщение отредактировал ГыГы - Вт, 10.03.2009, 23:53
Prototup Дата: Ср, 11.03.2009, 21:59  |                                                                                                                Сообщение # 8
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 09.11.2008

Статус: Offline

Спасибки, а в месте с НЕХ и АСМ файлом хорошо было-бы приложить программку в РВР, многим это наверное интересно, вАСМе не охота разбираться!
Сообщение отредактировал Prototup - Ср, 11.03.2009, 22:00
ГыГы Дата: Ср, 11.03.2009, 22:27  |                                                                                                                Сообщение # 9
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 17.02.2009

Статус: Offline

Программа написана на Сях. АСМа там нет.
Prototup Дата: Ср, 11.03.2009, 22:46  |                                                                                                                Сообщение # 10
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 09.11.2008

Статус: Offline

Сях - это хоршо, но к сожалению я его знаю плохо, гораздо лучше РВР или ISO для ЧПУ станков. Просто нигде не встречал толковых книжек по "С", ориентированного на PIC. Что было по РВР изучил всё доступное (2 книжки), да и так сам поднатоскался. Сейчас читаю Сида Катцена : Всё что вам необходимо.... Там тоже вскользь упоминается о "С", а такого конкретного ничего к сожалению доступного на данный момент в продаже нет, есть что-то универсальное (сырое), в мануале через страницу то про АWR. то про PIC. Если порекомендовали - бы что-нибудь фундаментальное и основательное по "С" для PIC, на родном русском языке - был-бы преблагодарен. Просто я самоучка в программировании микроконтроллеров и среди моих друзей таких энтузиастов нет! В институте, давно, изучал ассемблер Z80, и МК48-51., но это было более 18 лет назад.
Сообщение отредактировал Prototup - Ср, 11.03.2009, 22:47
demanik Дата: Ср, 11.03.2009, 23:53  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (Prototup)
Если порекомендовали - бы что-нибудь фундаментальное и основательное по "С" для PIC, на родном русском языке

Есть неплохая:http://easyelectronics.ru/shpak-yua-programmirovanie-na-yazyke-c-dlya-avr-i-pic-mikrokontrollerov.html
У меня она на бумаге, выложить не могу. cool
Я думаю гдето в сети она гуляет.


Попробуй всё и вся... может быть пол...


Сообщение отредактировал demanik - Ср, 11.03.2009, 23:54
Prototup Дата: Вс, 22.03.2009, 12:40  |                                                                                                                Сообщение # 12
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 09.11.2008

Статус: Offline

Пасибки! Такую книгу видел и на Савёлово и на Митьке, и в Молодой Гвардии, дефицита нет! Но что-то она мне не понравилась по стилю изложения, всё довольно скомкано и мало систематизировано, но выхода нет. Попробую осилить в поездках на метро, что-бы время зря не тратить! За то есть альтернатива РВР. Протон и т.д., почему все решили что С лучше?
Romario Дата: Вс, 22.03.2009, 13:32  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 61
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

Просто Си создаёт по сравнению с Бейсиком маленький, как при написании кода на Ас-ре, hex файл.
Поэтому Бейсик многие из-за этого и фукают.
Бейсик – простой и лёгкий для понимания, Си – более мощный и гибкий язык.

Кому интересно, у меня есть документация на русском языке по микроСИ.

demanik Дата: Вс, 22.03.2009, 14:37  |                                                                                                                Сообщение # 14
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (Romario)
Кому интересно, у меня есть документация на русском языке по микроСИ

Выложите где нибудь и дайте ссылочку может когданибуь пригодится.


Попробуй всё и вся... может быть пол...

ГыГы Дата: Вс, 22.03.2009, 20:27  |                                                                                                                Сообщение # 15
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 17.02.2009

Статус: Offline

http://www.piclist.ru/PICC_CCS_PCWH_MicroC_HT-PICC.html
Этот компиль тоже не особо хорош, создаёт также большие Хексы, но для новичка самое то. Полно встроенных полезных библиотек, такие как програмный USART, клавиатура PS/2, 1-Wire, работа с SD картами, и т.д...

Сообщение отредактировал ГыГы - Вс, 22.03.2009, 20:33
Форум Picbasic.ru » Электроника » Проблемы » Старая песня на новый лад (Симуляция датчика DS18B20 в протеусе 7.2SP6)
Страница 1 из 212»
Поиск: