Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: ivan_fd  
Cчет импульсов
ADMIN Дата: Вт, 29.01.2008, 17:50  |                                                                                                                Сообщение # 166
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

пишется так:
WORD.byte0=10, например
WRITE 0, WORD.BYTE0
WRITE 1, WORD.BYTE1
поскольку слово состоит из двух байт
DeveloperX Дата: Ср, 30.01.2008, 10:46  |                                                                                                                Сообщение # 167
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 149
Репутация: 1   ±
Замечания:   ±
На сайте с 25.10.2007

Статус: Offline

Quote (basicpic)
пишется так:
WORD.byte0=10, например
WRITE 0, WORD.BYTE0
WRITE 1, WORD.BYTE1
поскольку слово состоит из двух байт

т.к. разряды пробега умещаются в 1 байт, то их я не трогал, а остаток импульсов от 10км (60000имп) я разложил на 2 байта так
Code
read 0, b1.byte0
read 1, b1.byte1

сохраняет и читает ок. проверял.
но теперь при поступлении новых импульсов в протеусе значение b1 инкременируется в соответствии с поступающими импульсами правильно, а цифра на жк, соответствующая единицам км (рассчитывается как b1/6000) скачет: то появится 4, то 2, то 5, то, 3 и т.д.
что случилось???

Сообщение отредактировал DeveloperX - Ср, 30.01.2008, 12:11
ADMIN Дата: Ср, 30.01.2008, 12:24  |                                                                                                                Сообщение # 168
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

где-то просмотрел что-то
DeveloperX Дата: Пн, 26.05.2008, 09:03  |                                                                                                                Сообщение # 169
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 149
Репутация: 1   ±
Замечания:   ±
На сайте с 25.10.2007

Статус: Offline

Quote (basicpic)
где-то просмотрел что-то

пожалуйста посмотри http://slil.ru/25417573
полдня смотрю - ничего такого не вижу.
раяряд единиц км скачет! а импульсы (число права) считает верно!

и как правильно соединить/подключить 3 кондера для увеличения времени работы пика от них?

Добавлено (26.05.2008, 3:03:56)
---------------------------------------------
заметно мерцают символы на дисплее при обновлении раз в секунду.
как можно решить эту проблему???

Сообщение отредактировал DeveloperX - Пн, 26.05.2008, 09:04
ADMIN Дата: Вт, 27.05.2008, 02:15  |                                                                                                                Сообщение # 170
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Файл не найден
DeveloperX Дата: Вт, 27.05.2008, 09:15  |                                                                                                                Сообщение # 171
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 149
Репутация: 1   ±
Замечания:   ±
На сайте с 25.10.2007

Статус: Offline

Вот последняя версия
http://www.easyload.ru/download/?A10808
в протеусе не мерцает дисплей, а в готовом устройстве мерцает!
если уменьшить контрастность, то менее заметно, но и символы тоже хуже видно...
и 1500мкФ не хватает для сохранения данных.
как соединить несколько(3-5) кондеров по 1500мкф?

ещё хотел ускорить работу пика, поставив кварц на 10 или на 20 МГц, но с ними на дисплей цифры выводятся нормально, а буквы глючат! каждый раз на выводе разные символы там где должно быть "км" и "км/ч"!
почему так???

Сообщение отредактировал DeveloperX - Вт, 27.05.2008, 10:19
ЯНДЕКС Дата: 27.05.2008
holyuser Дата: Вт, 27.05.2008, 11:04  |                                                                                                                Сообщение # 172
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Попробуйте добавить строки:

DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50

WDT в PicBasicPro лучьше "отключать" так:

DEFINE NO_CLRWDT 1

DeveloperX Дата: Вт, 27.05.2008, 11:39  |                                                                                                                Сообщение # 173
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 149
Репутация: 1   ±
Замечания:   ±
На сайте с 25.10.2007

Статус: Offline

только сейчас заметил:
когда дотрагиваешься пальцем до RB0, то идут какие-то посторонние импульсы до 120имп/сек!!!
может быть диод сюда поставить?

Добавлено (27.05.2008, 5:39:26)
---------------------------------------------
holyuser, помогли твои строки. спасибо!

Про конденсаторы кто-нибудь сообщить может???

Сообщение отредактировал DeveloperX - Вт, 27.05.2008, 11:40
holyuser Дата: Вт, 27.05.2008, 12:12  |                                                                                                                Сообщение # 174
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (DeveloperX)
Про конденсаторы кто-нибудь сообщить может???

Примерная схема:

Конденсатор подключен через диод (выделены цветом) и питает схему некоторое время после отпадания напряжения +12v.
За напряжением питания можно следить, подавая его, через делитель, на вход RA0 (примерно).
Как можно быстрее, после появления тенденции к спаду, надо сначала отключить индикацию, чтобы уменьшить потребление, а потом делать остальное.

Если нужна большая емкость, дополнительно можно подключить несколько конденсаторов параллельно (C1 в примере), соблюдая при этом полярность.

DeveloperX Дата: Вт, 27.05.2008, 12:32  |                                                                                                                Сообщение # 175
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 149
Репутация: 1   ±
Замечания:   ±
На сайте с 25.10.2007

Статус: Offline

holyuser, спасибо за подробный ответ. меня интересовала лишь последовательность подключения: паралельно или последовательно.
много конденсаторов я хочу поставить, чтобы на дисплей тоже хватило энергии, чтобы был виден процесс сохранения данных.
думаю поставить штук 5 по 1500мкф, но не как в твоей схеме, а на выходе 78l05 как у меня в проекте.
достаточно ли этого будет?

после того как поставил кварц на 10мгц индикация стала происходить несколько раз в сек, а должна 1 раз/сек.
что нужно подправить в программе, чтобы откалибровать таймер/счетчик???

Сообщение отредактировал DeveloperX - Вт, 27.05.2008, 12:34
holyuser Дата: Вт, 27.05.2008, 13:14  |                                                                                                                Сообщение # 176
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (DeveloperX)
много конденсаторов я хочу поставить, чтобы на дисплей тоже хватило энергии, чтобы был виден процесс сохранения данных

Тогда можно так:

Диод ОБЯЗАТЕЛЬНО нужен, желательно Schottky, чтобы падение на нем в прямом направлении было минимальным.
Если диода не будет, то при выключении питания +12v, или при случайном КЗ входа стабилизатора на землю, большая емкость конденсаторов C1, C2, ... Cn разрядится через стабилизатор, что почти всегда приводит к его пробою.

Quote (DeveloperX)
после того как поставил кварц на 10мгц индикация стала происходить несколько раз в сек, а должна 1 раз/сек.
что нужно подправить в программе, чтобы откалибровать таймер/счетчик???

Случайно не забыли:

DEFINE OSC 10

DeveloperX Дата: Вт, 27.05.2008, 15:34  |                                                                                                                Сообщение # 177
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 149
Репутация: 1   ±
Замечания:   ±
На сайте с 25.10.2007

Статус: Offline

Quote (holyuser)
Случайно не забыли:
DEFINE OSC 10

не забыл.
может быть нужно предделитель переконфигурировать или переменную s менять?
ведь она отвечает за вывод на дисплей.
holyuser Дата: Вт, 27.05.2008, 23:16  |                                                                                                                Сообщение # 178
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (DeveloperX)
может быть нужно предделитель переконфигурировать или переменную s менять?
ведь она отвечает за вывод на дисплей.

Думаю, что можно загружать TMR0 значением 155 (для 10 МГц), вместо 5 (для 4 МГц), не изменяя при этом переменную s и предделитель.

DeveloperX Дата: Ср, 28.05.2008, 10:25  |                                                                                                                Сообщение # 179
Группа: Пользователи
Ранг:  Могу и подсказать
Сообщений: 149
Репутация: 1   ±
Замечания:   ±
На сайте с 25.10.2007

Статус: Offline

Quote (holyuser)
Думаю, что можно загружать TMR0 значением 155 (для 10 МГц), вместо 5 (для 4 МГц)

не помогло, наоборот частота вывода на экран увеличилась. т.к. переполнение таймера (255) достигается быстрее!
и подскажите по поводу импульсов:
когда дотрагиваешься пальцем до RB0, то идут какие-то посторонние импульсы до 120имп/сек с переменной частотой!!!
holyuser Дата: Ср, 28.05.2008, 11:17  |                                                                                                                Сообщение # 180
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Quote (DeveloperX)
не помогло, наоборот частота вывода на экран увеличилась.

Верно, извиняюсь, поспешил не подумав хорошо...
Попробуйте загружать TMR0 -> 99, а в предделителье установить 1:64
Quote (DeveloperX)
когда дотрагиваешься пальцем до RB0, то идут какие-то посторонние импульсы до 120имп/сек с переменной частотой!!!

Это, вероятно, обыкновенная наводка. Попробуйте включить подтягивающие резисторы:
OPTION_REG.7 = 0 (у Вас в программе, кажется, OPTION_REG = %11000011)

Итого:
OPTION_REG = %01000101

К сожалению я не могу посмотреть на схему Вашего проекта, потому что не использую Proteus. Пробовал когда-то, не понравилось, и в топку!

А на каком PIC-е Вы это делаете?

Поиск: