Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 17.10.2008, 11:51  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,831
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Алгоритм подсчета импульсов.

Доброго времени.Подскажите лучший алгоритм подсчета импульсов.
Задача такая-на два входа МК приходят имульсы частотой от 0,1гц до 1кгц,один вход считает в плюс,другой в минус,результат выводитс на АЛС динамически.
Задумка такая - постоянно проверяя состояние портов
делать прерывание по таймеру и ,например 100 раз в секунду выводить значение на индикацию.Но встает вопрос не будет ли пропуск импульсов во время обработки прерывания.
Другой вариант наоборот делать прерывания по появлению на входах импульсов и считать их,а в основном цикле вывод,но тогда возможна ситуация при длинной посылке индикаторы будут мигать.

Как оптимально и обрабатывать входные импульсы и выводить результат?
Реклама:
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 17.10.2008, 12:40  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

ну и какие проблемы ? один вход - по прерыванию, второй - счетный вход таймера... Решительно не вижу повода огорчаться.
urry вне форума  
Непрочитано 17.10.2008, 13:06  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,831
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию

urry ,а можно подробнее,я в МК ещё только начинаю разбираться.
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 17.10.2008, 14:28  
chapa
Вид на жительство
 
Аватар для chapa
 
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
chapa на пути к лучшему
По умолчанию

делаешь два прерывания по нужным тебе перепадам на ножках INT0,1,2. а обработчик прерывания делаешь по возможности коротким, тупо увеличивать или уменьшать один глобальный счетчик. Тактовую частоту заведи большую, чтобы все успевать. В самой плохой ситуации длительность обработки прерывания должна быть не больше 0.5милисекунды, при мах входной частоте 1кГц.
при тактовой 1МГц, 0.5мс - это пятьсот тактов, ды там еще музыку успеешь проиграть...

вопрос перехода через нуль/максимум?
А вывод на экран делаешь в основной программе.
chapa вне форума  
Непрочитано 17.10.2008, 14:56  
mike7815
Прописка
 
Регистрация: 16.03.2005
Сообщений: 244
Сказал спасибо: 78
Сказали Спасибо 85 раз(а) в 55 сообщении(ях)
mike7815 на пути к лучшему
По умолчанию

Ширина импульсов какая будет? Дребезг есть?
mike7815 вне форума  
Непрочитано 17.10.2008, 16:07  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,831
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию

Изначально идет Sin Cos,затем на триггерах обрезается по ширине 1/3 примерно,дребезга нет,счет от -999999 до 999999 при переполнении сброс на нуль.
Это индикация такая источник импульсов инкрементальный датчик.

А может триггера не использовать сразу Sin Cos завести в МК ? кто первым пришел тот и считать
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 18.10.2008, 12:44  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Алгоритм подсчета импульсов.

Сообщение от E_C_C
Задача такая-на два входа МК приходят имульсы частотой от 0,1гц до 1кгц,один вход считает в плюс,другой в минус,результат выводитс на АЛС динамически.
ИМХО одного прерывания таймера хватит, с периодом 0,1-0,2 милисек.
За один проход прерывания:
1) Опрашиваеш входы и сравнивая с предыдущим содержимым
входов, и считаеш счётчик повторений(подавлени едребезга, окончен счётчик - сработал вход.)
Считаеш счётчик импульсов.

2) выводиш один разряд АЛС.
picavr вне форума  
Непрочитано 20.10.2008, 12:20  
mike7815
Прописка
 
Регистрация: 16.03.2005
Сообщений: 244
Сказал спасибо: 78
Сказали Спасибо 85 раз(а) в 55 сообщении(ях)
mike7815 на пути к лучшему
По умолчанию

Рicavr, ес, истину глаголите. Собственно я к этому и спрашивал.
ТО Oll, использовать прерывания по входу конечно можно но в данном случае излишне т.к. есть динамическая индикация- событие, происходящее через заданый промежуток времени.
mike7815 вне форума  
Непрочитано 20.10.2008, 15:48  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,831
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию

Спасибо ответившим , буду пробовать.
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 22.10.2008, 19:01  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от mike7815
Рicavr, ес, истину глаголите. Собственно я к этому и спрашивал.
ТО Oll, использовать прерывания по входу конечно можно но в данном случае излишне т.к. есть динамическая индикация- событие, происходящее через заданый промежуток времени.
Стараюсь не пользоваться прерываниями по ногам, если нет нужды ловить МОМЕНТ прихода импульса.
ИМХО меньше мороки с отлавливанием и обработкой помех.

Обычно всё работает по прерываниям таймера, даже УАРТЫ, I2C и остальная хрень, где не нужно СИНХРОНИЗИРОВАТЬ с внешним воздействием.
picavr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа подсчета импульсов - 2 hopi Микроконтроллеры, АЦП, память и т.д 2 26.10.2008 11:11
Алгоритм работы с CAN на AT90CAN svad0 Микроконтроллеры, АЦП, память и т.д 1 15.10.2008 14:25
Алгоритм деления kviper Микроконтроллеры, АЦП, память и т.д 5 03.01.2007 15:15
Помогите транслировать алгоритм vdlab Микроконтроллеры, АЦП, память и т.д 6 22.11.2006 19:12
[Решено] Алгоритм Алекс Цифровые сигнальные процессоры 2 27.03.2006 12:33


Часовой пояс GMT +4, время: 20:39.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot