Старая песня на новый лад
|
|
Prototup |
Дата: Сб, 07.03.2009, 17:33 | Сообщение # 1 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 09.11.2008
Статус:
Offline
|
Проблема в следующем: написал програмку, откомпилировал. Всё ОК! , но то-ли я где-то накосячил в самой проге, толи глюк самого Протеуса, но видно, что обмена между профессором и датчиком нет! Хотя судя по логическим состояниям он есть, только что там происходит и почему на индикаторах одни нули? * 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
|
|
|
|
ГыГы |
Дата: Вс, 08.03.2009, 16:53 | Сообщение # 2 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
20
Замечания:
±
На сайте с 17.02.2009
Статус:
Offline
|
В протеусе DS1820 работает замечательно. А где прошивка ? Вы выложили только проект. Да и сжимать бы нужно файлы.
|
|
|
|
Prototup |
Дата: Пн, 09.03.2009, 12:25 | Сообщение # 3 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 09.11.2008
Статус:
Offline
|
Извини, удалённый друг, спасибо что откликнулся! Мозги уже дымятся неделю. Не могу понять в чём ошибка. Высылаю текст программы и прошивочку, а также повторно схему! За мной пиво!, если живёшь в Москве.
|
|
|
|
Prototup |
Дата: Вт, 10.03.2009, 00:02 | Сообщение # 4 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 09.11.2008
Статус:
Offline
|
Сам му-ак! Всё сделал сам, исправил! Ну кто знал што в Проктеусе нельзя ставить батарейку на место источника питания +5В? В программе все косяки исправил. Считывает и показывает температуру с точностью до 0,5 градуса, только в минус врёт, но там другие вычисления нужны. Думаю что смогу довести точность показаний до 0,1гр(чуть доработать вычесления). Ну пока на этом остановлюсь, что-то устал от собственной бестолковщины. Кому интересно- смотрите. Прошивочка и схемка в Проктеусе 7.2SP6 - прилагается!
|
|
|
|
ГыГы |
Дата: Вт, 10.03.2009, 19:46 | Сообщение # 5 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
20
Замечания:
±
На сайте с 17.02.2009
Статус:
Offline
|
В "-" врёт это правда, но скорее всего это уже глюк протеуса. Помниться я когда делал он и в "+" врал, уже не помню. Я помню корректировал програмно, потом на железе собрал, оказалось что протеус нагло врал, пришлось корректировку убирать. Тестировал на образцовом термометре. Quote с точностью до 0,5 градуса У меня до 0.1 мерил. Но может это вовсе не точность, а всего-лишь дискретность измерения. Хотя, я сделал регулятор, держал до 0.1С .
|
|
|
|
Prototup |
Дата: Вт, 10.03.2009, 21:30 | Сообщение # 6 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 09.11.2008
Статус:
Offline
|
Спасибки, а в месте с НЕХ и АСМ файлом хорошо было-бы приложить программку в РВР, многим это наверное интересно, вАСМе не охота разбираться!
Сообщение отредактировал
Prototup - Ср, 11.03.2009, 22:00
|
|
|
|
ГыГы |
Дата: Ср, 11.03.2009, 22:27 | Сообщение # 9 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
20
Замечания:
±
На сайте с 17.02.2009
Статус:
Offline
|
Программа написана на Сях. АСМа там нет.
|
|
|
|
Prototup |
Дата: Ср, 11.03.2009, 22:46 | Сообщение # 10 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 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 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (Prototup) Если порекомендовали - бы что-нибудь фундаментальное и основательное по "С" для PIC, на родном русском языке Есть неплохая:http://easyelectronics.ru/shpak-yua-programmirovanie-na-yazyke-c-dlya-avr-i-pic-mikrokontrollerov.html У меня она на бумаге, выложить не могу. Я думаю гдето в сети она гуляет.
Попробуй всё и вся... может быть пол...
Сообщение отредактировал
demanik - Ср, 11.03.2009, 23:54
|
|
|
|
Prototup |
Дата: Вс, 22.03.2009, 12:40 | Сообщение # 12 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
24
Замечания:
±
На сайте с 09.11.2008
Статус:
Offline
|
Пасибки! Такую книгу видел и на Савёлово и на Митьке, и в Молодой Гвардии, дефицита нет! Но что-то она мне не понравилась по стилю изложения, всё довольно скомкано и мало систематизировано, но выхода нет. Попробую осилить в поездках на метро, что-бы время зря не тратить! За то есть альтернатива РВР. Протон и т.д., почему все решили что С лучше?
|
|
|
|
Romario |
Дата: Вс, 22.03.2009, 13:32 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Пытаюсь разобраться
Сообщений:
58
Замечания:
±
На сайте с 14.09.2007
Статус:
Offline
|
Просто Си создаёт по сравнению с Бейсиком маленький, как при написании кода на Ас-ре, hex файл. Поэтому Бейсик многие из-за этого и фукают. Бейсик – простой и лёгкий для понимания, Си – более мощный и гибкий язык. Кому интересно, у меня есть документация на русском языке по микроСИ.
|
|
|
|
demanik |
Дата: Вс, 22.03.2009, 14:37 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (Romario) Кому интересно, у меня есть документация на русском языке по микроСИ Выложите где нибудь и дайте ссылочку может когданибуь пригодится.
Попробуй всё и вся... может быть пол...
|
|
|
|
ГыГы |
Дата: Вс, 22.03.2009, 20:27 | Сообщение # 15 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
20
Замечания:
±
На сайте с 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
|
|
|
|