Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15 Сообщений: 2106 Откуда: Старые Васюки
Рейтинг сообщения:0
константин_KoSS_89 писал(а):
Нет, приём был в постоянном цикле, а шим я повесил на таймер0.....
Я как раз об этом и говорю:
Цитата:
GETRC5( address, command ) Uses TIMER0 Since a timer is needed for accurate delays and background processing TIMER0 is used by this statement. Also the interrupt of TIMER0 is used by this statement. TIMER0 can be used by your application since the values are preserved by the statement but a delay can occur. The interrupt can not be reused.
Вы пытались одновременно повесить на один таймер две совершенно разные функции. ШИМ надо переносить на таймер1 (если он есть в данном МК).
_________________ Даже остановленные часы два раза в сутки показывают правильное время.
Привет всем! Недавно решил на мотоцикл спроектировать полностью приборную панель (а то из-за многих переделок у меня только поворотники на спидометре работают, а все остальное-нет). Начал все с того, что нужно сначала сделать спидометр с одометром и сразу появились первые грабли-слишком долго нужно ждать для получения результата скорости. Датчик я недавно нашел под него 4-х импульсный. Вот код:
Сначала программа находит частоту, а потом из частоты-в скорость, при этом нужно также юзать радиус колеса. В программе я использовал формулу с физики, поэтому так глупо получилось. Где-то видел пример (не помню, где и как ) как использовать таймер для счета скорости за 1 сек, чтобы разгрузить программу МК от ожидания.
Теперь о второй проблеме. Т.к. программа ждет аж 1 сек, то 100% невозможно засунуть все это безобразие в МК с семи сегментными индикаторами. Если кто-то что-то знает - откликнитесь, а то уже месяц борюсь, и не как. P.s. Если кто-нибудь делал звук стука, переключения или проч. (как в "Рыцарь дорог", когда на спидометре изменялись цифры) или близких звуков-киньте пример.
_________________ Вы получаете от людей больше, если им противоречите
Напишите для начала вывод чисел (в будущем это будет вывод скорости) на семисегментный индикатор из переменной (или переменных - по одной штуке на один разряд)
(а дальше можно схему с этим кодом в студию...)
А по прерываниям как писать можете подсмотреть информацию тут:
Программа для вывода чисел уже месяца два, как готова и устройство собрано, да и на том сайте был. Я единственно не могу понять, как настроить таймер на 1 сек
_________________ Вы получаете от людей больше, если им противоречите
Код и схема+протеус в студию.
Сразу отвечу на ваш вопрос. Схема так сделана, потому что необходимо было запихнуть МК за LED, поэтому и программка такая получилась. все в реале РАБОТАЕТ уже несколько месяев.
Ну и прекрасно. Как интервал делать в секунду (именно прерыванием, с подробностями) - есть где-то в этой теме, пока разбирайтесь с этим.
Но более актуальной будет скорость если считать не кл-во импульсов за секунду, а считывать количество времени прошедшее от одного импульса до другого.
Цитата:
Sub Indication Portd.4 = 1 Call Ones_digit Waitms W Portd.4 = 0
Portd.3 = 1 Call Tens_digit Waitms W Portd.3 = 0
Portb.6 = 1 Call Hundreds_digit Waitms W Portb.6 = 0
End Sub
Попробуйте для начала сделать так - коечто должно измениться. Да и W можно будет уменьшить. (потом можно будет ещё пооптимизировать код для семисегментника )
Ни протеуса ни баскома под руками нет Но если совсем не разберётесь - обязательно поможем. Да, и пользуйтесь баскомовским хелпом - он достаточно подробный с готовыми примерами.
_________________ Скелет колобка состоит из черепа.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения