TTL и CMOS логика Цифровая схемотехника на логических микросхемах. Счетчики, сдвиговые регистры, простая логика... |
09.03.2011, 22:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,833
Сказал спасибо: 744
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Попробую вариант ув. Falconist в посте №2 только вместо RS поставить D триггер. Лишний корпус , да и ладно , не жалко.
__________________
Да здравствует Разум,да сгинет Маразм!
|
|
|
|
09.03.2011, 23:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Собственно то, о чём писал. Counter.zip (плохая модель ИЕ6)
Последний раз редактировалось omercury; 09.03.2011 в 23:58.
|
|
|
Сказали "Спасибо" omercury
|
|
|
10.03.2011, 00:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Зачем все эти костыли если проц все прекрасно разрулит сам (если нет дребезга). Вешаем два сигнала на входы прерываний по перепаду, в фоне тикает таймер. По каждому срабатыванию прерывания захватываем текущее значение таймера и отнимаем от него предыдущее. Сохраняем эту цифру. При следующем прерывании проделываем то же самое и сравниваем цифры. По результату сравнения (и зная, в каком именно прерывании мы сейчас сидим) определяем знак (плюс или минус) и считаем один тик. По следующему прерыванию повторяем и снова считаем. Результат делим на 2 ибо за 1 период считаем 2 единицы. Подпрограммы занимают максимум 50...100 маш.циклов, при 8 МГц - до 80...160 кГц может быть входная.
|
|
|
|
10.03.2011, 02:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Сообщение от niXto
|
Вешаем два сигнала на входы прерываний по перепаду, в фоне тикает таймер.
|
Нет, нет, нет! Там сдвиг 90 градусов. Одно прерывание. По входу в прерывание анализируем второй сигнал. Если "1" - в одну сторону, если "0" - в другую. И соответственно инкремент или декремент.
|
|
|
|
10.03.2011, 07:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Тогда ещё проще. К чему весь этот сыр-бор
|
|
|
|
10.03.2011, 08:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,833
Сказал спасибо: 744
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Сообщение от niXto
|
Тогда ещё проще. К чему весь этот сыр-бор
|
На МК еще висят задачи по динамической индикации, некоторые математические вычисления в зависимости от которых надо дергать 4 выходных пина, плюс запись в EPROM , опрос клавиатуры, и возможно еще что-то. Больше всего ресурса отнимает индикация . И на большой скорости возникает эффект , когда МК отрабатывает только счет , индикация встает. Возможно конечно поставить ЖК дисплей с встроенным контроллером, или динамическую индикацию возложить на отдельный узел , на логике или на другом МК. Возможно я так и сделаю, после того как попробую вариант с делением входной частоты.
Сообщение от omercury
|
(плохая модель ИЕ6)
|
А что у Вас за версия протеуса ? мой 7.4 не открывает , устарел наверно.
__________________
Да здравствует Разум,да сгинет Маразм!
Последний раз редактировалось E_C_C; 10.03.2011 в 09:08.
|
|
|
|
10.03.2011, 09:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Сообщение от E_C_C
|
А что у Вас за версия протеуса ? мой 7.4 не открывает , устарел наверно.
|
Видимо да. 7.7sp2.
Сообщение от E_C_C
|
И на большой скорости возникает эффект , когда МК отрабатывает только счет
|
Да не всё так страшно. На прерывание и изменение счётчика уйдёт всего тактов 20-25. От длины счетчика зависит. Можно, конечно, и частоту поделить внешним счетчиком, но тогда придётся ловить счёт и направление( читать внешний делитель) уже математически. Тож на тож и выйдет. Хотя инерционность системы довольно большая, но смысла не вижу. Проще тактовую частоту поднять до 8MHz - 240 тактов на максимальных оборотах за глаза хватит. Только в тактовом таймере надо будет сразу прерывания разрешать - но это при любой тактовой. И кнопки опрашивать тоже по тактам, вместе с индикацией.
|
|
|
|
13.03.2011, 05:07
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
Ну у вас опять же два пути. Из простых, конечно. Первый - инкременировать таймер по сигналу с датчика. Переполнение таймера - ваше прерывание. Делитель можно сделать любой - просто писать в таймер начальное значение.
И второй путь еще проще - МК с нужной переферией. Есть МК с поддержкой энкодеров. Все на аппаратном уровне.
|
|
|
|
04.04.2011, 19:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,833
Сказал спасибо: 744
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
|
Re: Делитель частоты sin/cos последовательности
[QUOTE=Easyrider83;334820 Есть МК с поддержкой энкодеров. Все на аппаратном уровне.[/QUOTE]
Мы не ищем легких путей
[QUOTE=Easyrider83;334820 инкременировать таймер по сигналу с датчика. Переполнение таймера - ваше прерывание..[/QUOTE]
Хорошая идея , надо попробовать.
__________________
Да здравствует Разум,да сгинет Маразм!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:45.
|
|