Cчет импульсов
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 12:42 | Сообщение # 31 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
Yrok, что означает TMR0=5 и почему if s=250 then s=0 и т.д.
|
|
|
|
Yrok |
Дата: Ср, 31.10.2007, 14:18 | Сообщение # 32 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Ну вот--я же просил тебя почитать мануал про таймеры. Если бы почитал думаю таких вопросов невозникало бы. Ну попытаюсь тогда объяснить на пальцах: У микроконтроллера есть такой таймер TMR0 размером 8 бит--т.е. после 255 счета он обнуляется и начинает считать занова. Его можно настроить чтоб он считал внешние импульсы а можно как в моей программе импульсы внутреннего генератора считать т.е.-- частота кварца /4--т.е. при кварце 4 МГц--на счетчик идут импульсы 1МГц. Перед счетчиком можно включить предделитель с разными коэффициентами кратными 2 В моем случае выбран делитель 1:16 При этом на таймер TMR0 будет приходить 62500 импульсов за 1 сек Т.к.--счетчик умеет считать только до 255--нам придется использовать дополнительную переменную для организации счета до 62500 Еще раз напоминаю чтобы прошла 1 секунда и мы выставили флаг разрешающий вывод на экран-нам нужно подсчитать 62500 импульсов. Т.е. переменная s считает у нас переполнения TMR0. Если мы возьмем 62500/255 то получим что 1 сек переполнения произойдут 245,098 раз--дабы небыло большой погрешности нам нужно чтоб за 1 сек переполнения происходили целое число раз. Поэтому мы записываем в TMR0 число 5--тогда таймер будет переполняться 255-5=250 через 250 импульсов 62500/250=250--поэтому мы смотрим как только s будет равно 250--значит прошла 1 секунда и разрешаем вывод на экран
|
|
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 14:25 | Сообщение # 33 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
Quote (Yrok) В моем случае выбран делитель 1:16 а какая это строка в коде?
|
|
|
|
Yrok |
Дата: Ср, 31.10.2007, 14:43 | Сообщение # 34 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
OPTION_REG = $43 ' Включаем подтягивающие резисторы и настраиваем предделитель для TMR0
|
|
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 14:45 | Сообщение # 35 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
а где здесь 16? 43 ни в одной системе счисления не равно 16!
|
|
|
|
Yrok |
Дата: Ср, 31.10.2007, 15:01 | Сообщение # 36 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
OPTION_REG --это регистр специального назначения с помощью него и конфигурируют Pic 1:16 это 011 --2,1,0 бит в этом регистре
|
|
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 15:07 | Сообщение # 37 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
я так понял, что переменные od100 и т.д. для подсчета километров? а успеет ли пик вывести на экран и скорость (имп*0,6 за секудну) и километраж? а после отключения питания ещё и записать пробег в еепром! я читал, что можно повесить большущий конденсатор и после отключения питания запитаться на него для сохранения данных в память.
|
|
|
|
Yrok |
Дата: Ср, 31.10.2007, 15:09 | Сообщение # 38 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
успеет
|
|
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 15:14 | Сообщение # 39 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
какой размер у word? поместится ли туда информация о количестве импульсов при пробеге например 500 км без остановки? (6000имп*500км=1800000имп) Quote (DeveloperX) я читал, что можно повесить большущий конденсатор и после отключения питания запитаться на него для сохранения данных в память. с реализацией сего поможете (возможно в другой ветке) потом?
|
|
|
|
Yrok |
Дата: Ср, 31.10.2007, 15:40 | Сообщение # 40 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
А зачем тебе пробег считать импульсами--считай его километрами--т.е. как только пришло 6000 импульсов +1 км и опять считаем 6000 импульсов Я же тебе незря ссылку на готовый борткомп присылал--погляди как там это реализовали--там неплохо придумали и что самое главное скока времени потребуется стока и будет.
|
|
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 16:05 | Сообщение # 41 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
готовый борткомп я понять не смог... вот какая мысль у меня: проехали мы 10 км и 999 м, остановились, в еепром записали +10. потом поехали, а 999 потерялись!!! или в еепром ничего не писать, а хранить в переменной и при отключении зажигания переходить на питание от батарейки и sleep до старта. вообще учет вести считаю разумным в метрах! или я не прав?
Сообщение отредактировал
DeveloperX - Ср, 31.10.2007, 16:23
|
|
|
|
Yrok |
Дата: Ср, 31.10.2007, 16:21 | Сообщение # 42 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Правильно Я тебе про это говорил выше--но ты решил в километрах--ну думаю тебе видней
|
|
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 16:25 | Сообщение # 43 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
Quote (DeveloperX) в еепром ничего не писать, а хранить в переменной и при отключении зажигания переходить на питание от батарейки и sleep до старта. но обидно будет, если батарейка закончится или ещё что-нибудь и все данные потеряются!!!
|
|
|
|
Yrok |
Дата: Ср, 31.10.2007, 16:46 | Сообщение # 44 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Quote Quote (DeveloperX) в еепром ничего не писать, а хранить в переменной и при отключении зажигания переходить на питание от батарейки и sleep до старта. Да я тоже считаю это глупо--тем более при заводе питание проседает до 8-10 вольт --что приведет либо к зависанию Pic либо к его перезагрузке--и тогда тю тю все данные-ведь мы их нигде нехраним. В ссылке что я тебе присылал сделанно все просче: Стоит управляемый стабилизатор(а стабилизатор всеравно ведь ставить будем для питания Pic)--на сам стабилизатор подается +12В постоянно от аккумулятора а при включении зажигания напряжение подается на управляющий вход стабилизатора а также на один из входов пика, а один из выходов подключен через диод тоже к управляющему входу стабилизатора--т.е. Pic начинает работать и ставит на управляющий выход уровень 1--тем самым недает выключить Pic пока он(Pic) сам этого незахочет. В программе реализованна проверка напряжения на входе куда подается напряжение при включении зажигания--как только мы выключаем зажигание--Pic это ловит , сохраняет все данные в EEPROM и только после этого подает на выход управляющий стабилизатором уровень 0--тем самым выключает себя---мудрёно да????
|
|
|
|
DeveloperX |
Дата: Ср, 31.10.2007, 17:11 | Сообщение # 45 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
на той схеме используется управляемый стаб KA78R05? а батарейка там зачем? для часов? такая ситуация: ехали-ехали, проехали 500 км. вдруг что-то случилось в проводке (например аккумулятор сел совсем или клемма отскочила или вообще замыкание), мы остановились, и в таком случае километраж не запишется в еепром, данные будут потеряны, т.к. +12в не будет!!! можно ли сделать так ,чтобы пик запитался от батарейки (или большущего конденсатора) +3в, чтобы сохранить данные?
Сообщение отредактировал
DeveloperX - Ср, 31.10.2007, 18:30
|
|
|
|