-
- А зачем таймер, счётчик? Возьмите 2 ножки и 2 pin change прерывания, их вроде даже у тиньки 6 штук. В каждом прерывании либо индивидуалый трёхбайтный счётчик, либо общий реверсивный на оба прерывания. Частота у Вас низкая, прерывания будут qq(22 знак., 12.02.2013 00:57, )
- Согласен полностью.Делал лет 10 назад конвертор протоколов для икм-30 на Atmel 2313 - 5 вложеных прерываний в реальном времени на 64кбит (при тактовой 8MHZ). Работало изумительно (и сэкономило конторе кучу денег). kome298(56 знак., 12.02.2013 08:09)koyodza
- Не согласна, 200 тыс. прерываний в секунду это слишком много. Кроме того, нахождение в прерывании от одного счетчика будет мешать работе другого, т.к. прерывания у AVR нерекурсивные. - Ксения(12.02.2013 02:58)
- даже получится 400 тыс, потому как два входа. Да, для AVR это перебор. Но пара 8-битных таймеров решают проблему - koyodza(12.02.2013 11:42)
- Ну, требований по точности Вы не заявляли. Аппаратный таймер конечно точнее. А рекурсивность пожалуй и не нужна. 1. код прерывания будет очень короткий. 2. Вам вроде важна ситуация на момент окончания периода измерения - последняя доля йй(336 знак., 12.02.2013 04:06, )
- Неужели железо АВР не позволяет создать стандартную функциональную схему частотомера: подсчет количества входных импульсов за откалиброванный временной интервал? - =L.A.=(11.02.2013 17:35)
- В разделе AVR я спрашивала только о существовании MK с двумя "длинными" таймерами (16 разрядов), счетные входы которых выведены наружу. Никаких других значимых требований я не выдвигала, кроме DIP корпуса. Сами понимате, что запаять 100-144 Ксения(291 знак., 11.02.2013 19:31 - 19:36)
- Какие 100...144-выводные? Вот Вам, например, примитивный Cortex-M0 (->) в 32-выводном корпусе по цене < 1$ со склада, и вот Вам отладочная плата с полноценным эмулятором к нему за 10$ (->). И распаивать ничего не надо. Ну нет сейчас в Компеле. Dir(24 знак., 11.02.2013 20:01, ссылка, ссылка)
- ШИМ есть? =L.A.=(675 знак., 11.02.2013 19:50)
- Главное, чтобы был счетный вход - тогда и ШИМ мне не нужен. Просто по таймеру (другому) выскакиваю в прерывание, откуда прочитываю оба счетчика. Аппаратно блокировать вход не вижу смысла. - Ксения(11.02.2013 23:55)
- ШИМ-ом делают калиброванный временной интервал. =L.A.=(1707 знак., 12.02.2013 08:00 - 08:17, ссылка)
- А почему вы не можете запаять 100 ногую микросхему, я понять не могу. - =L.A.=(11.02.2013 19:51)
- А у меня руки в жопе :) - Ксения(11.02.2013 23:51)
- -> - Snaky(12.02.2013 01:29, ссылка)
- так закажите мелкий кит, тот же ланчпад за 13 баксов. если плата на борт великовата - отпилите отладчик, его можно отдельно использовать, опять великовата? отпилите всё вокруг кроме кварца, подадите землю питание два своих сигнала и выход уарта Mahagam(111 знак., 12.02.2013 00:24)
- А у меня руки в жопе :) - Ксения(11.02.2013 23:51)
- Главное, чтобы был счетный вход - тогда и ШИМ мне не нужен. Просто по таймеру (другому) выскакиваю в прерывание, откуда прочитываю оба счетчика. Аппаратно блокировать вход не вижу смысла. - Ксения(11.02.2013 23:55)
- У Ксении специальные, но на мой взгляд, не очень убедительные требования по частоте прерываний переноса из аппаратных таймеров в софт - Vladimir Ljaschko(11.02.2013 18:11)
- Ветка длинная не всё прочитал, но не могу представить никаких особенностей загрузки-выгрузки данных. - =L.A.=(11.02.2013 19:14)
- В разделе AVR я спрашивала только о существовании MK с двумя "длинными" таймерами (16 разрядов), счетные входы которых выведены наружу. Никаких других значимых требований я не выдвигала, кроме DIP корпуса. Сами понимате, что запаять 100-144 Ксения(291 знак., 11.02.2013 19:31 - 19:36)
- Под потерей точности -- что имеется ввиду? Что, например, за время измерения частота измениться может, или, например, что время измерения станет неприемлимо большим, если частоту с нужной точностью измерять непосредственно -- по числу импульсов fk0(907 знак., 11.02.2013 00:47)
- В Atmega8/88 у таймеров T0/T1 есть входы внешнего тактирования - их и используйте - zeleny(10.02.2013 21:26)
- T0 маловат, всего лишь 8-битный. - Ксения(10.02.2013 22:20)
- программно по переполнению можно сделать хоть 64-битный - zeleny(10.02.2013 22:23)
- она Вас не услышит. Об этом я говорил ещё в самом начале - koyodza(10.02.2013 22:24)
- И я об этом уже говорила в ответе на вопрос о недостаточности 16-разрядного счетчика для частоты 200 КГц => - Ксения(10.02.2013 22:27, ссылка)
- так и 800 коротких прерываний для расширения счётчика тоже можно, синхронность счёта тут не нужна, вполне реализуемо если тактовая МК у Вас не 500кГц. Я ещё вчера предлагал сделать на любой меге с 8-битными таймерами - koyodza(10.02.2013 22:30 - 22:36, ссылка)
- имхо для работы с сигналами до 200кГц ставить FPGA в дополнение к МК это перебор. Тут можно даже 8-битными таймерами обойтись, если не хочется изучать другие МК - koyodza(09.02.2013 17:32)
- Да я уж и не знаю, как быть: и раздел AVR для вопроса выбрала, и в топовом сообщении явно указала, что требуется AVR, а все равно пришло к тому, что эту FPGA будем склонять до бесконечности, а мой вопрос так и повиснет в воздухе... - Ксения(09.02.2013 17:41)
- Ну, Вы же не сразу написали, что частоты 200 КГц. К тому же MAX3000A это не FPGA, а CPLD.. :) - USSR(09.02.2013 17:52, )
- я как раз говорю, что FPGA тут лишнее, вполне можно реализовать почти на любой меге используя 8-битные таймера, или один 8-битный и один 16-битный, и не нужно искать какую-то особую мегу - koyodza(09.02.2013 17:52)
- Да я уж и не знаю, как быть: и раздел AVR для вопроса выбрала, и в топовом сообщении явно указала, что требуется AVR, а все равно пришло к тому, что эту FPGA будем склонять до бесконечности, а мой вопрос так и повиснет в воздухе... - Ксения(09.02.2013 17:41)
- имхо для работы с сигналами до 200кГц ставить FPGA в дополнение к МК это перебор. Тут можно даже 8-битными таймерами обойтись, если не хочется изучать другие МК - koyodza(09.02.2013 17:32)
- так и 800 коротких прерываний для расширения счётчика тоже можно, синхронность счёта тут не нужна, вполне реализуемо если тактовая МК у Вас не 500кГц. Я ещё вчера предлагал сделать на любой меге с 8-битными таймерами - koyodza(10.02.2013 22:30 - 22:36, ссылка)
- И я об этом уже говорила в ответе на вопрос о недостаточности 16-разрядного счетчика для частоты 200 КГц => - Ксения(10.02.2013 22:27, ссылка)
- она Вас не услышит. Об этом я говорил ещё в самом начале - koyodza(10.02.2013 22:24)
- программно по переполнению можно сделать хоть 64-битный - zeleny(10.02.2013 22:23)
- T0 маловат, всего лишь 8-битный. - Ксения(10.02.2013 22:20)
- Не знаю, как вы к АРМам относитесь, но у STM32 таймеры очень могучие. Поддаются каскадированию, выход одного таймера может запускать и останавливать другие. По ссылке - аппнота с общим обзором таймеров семейства. - vmp(09.02.2013 23:34, ссылка)
- При решении задачи на авэре, подаёте частоту на восьмибитный счётчик Т0. m9rs(220 знак., 09.02.2013 22:30)
- Понятно. Интересно, а бывают ли готовые платы с ATmega1284P-PU? Типа Аурдино? - Ксения(09.02.2013 22:35 - 22:38, картинка)
- Для вашей задачи пойдёт и мега48. Достаточно использовать частоту одного из генераторов как опорную и подавать её на восьми битный счётчик Т2 с 10-ти битным прескалером. Получите 18 бит это 262143 отсчёта. По его переполнению считываете m9rs(100 знак., 09.02.2013 22:56 - 23:01)
- Как ее подашь на счётчик Т2, если его счетный вход наружу не выведен? Или это на TOSC2 частота подается? - Ксения(09.02.2013 23:16 - 23:20)
- Да, Вы правы, смотрел только на схему счётчика а не на выводы :(. А может саму мегу затактировать от одного из генераторов? - m9rs(09.02.2013 23:27)
- Applying an external clock source to TOSC1 can be done if EXTCLK in the ASSR Register is written to logic one. ilyaul(400 знак., 09.02.2013 23:28 - 23:31)
- Да, Вы правы, смотрел только на схему счётчика а не на выводы :(. А может саму мегу затактировать от одного из генераторов? - m9rs(09.02.2013 23:27)
- А если нет , то кто кого обогнал? - ilyaul(09.02.2013 23:08)
- Как ее подашь на счётчик Т2, если его счетный вход наружу не выведен? Или это на TOSC2 частота подается? - Ксения(09.02.2013 23:16 - 23:20)
- Есть Evaluation Kits у Atmel - ilyaul(09.02.2013 22:52)
- Для вашей задачи пойдёт и мега48. Достаточно использовать частоту одного из генераторов как опорную и подавать её на восьми битный счётчик Т2 с 10-ти битным прескалером. Получите 18 бит это 262143 отсчёта. По его переполнению считываете m9rs(100 знак., 09.02.2013 22:56 - 23:01)
- Понятно. Интересно, а бывают ли готовые платы с ATmega1284P-PU? Типа Аурдино? - Ксения(09.02.2013 22:35 - 22:38, картинка)
- такие реверсивные счетчики с отдельными входами есть, это К155ИЕ7 (ИЕ6 считает до 10) он же 74193. Можно взять пару счётчиков каскадом (чтобы считали до 256 хотя бы), а перенос завести на прерывания МК. TI до сих пор выпускает 74НС193 - koyodza(09.02.2013 19:22 - 19:38, ссылка)
- не смогут они так работать. на противофазном входе должен быть высокий уровень зафиксирован. - Mahagam(11.02.2013 01:16)
- Несложно сделать схему дающую 100нс "0" импульс при переходе 0->1, в остальное время на выходе "1" на паре элементов И-НЕ. - fk0(11.02.2013 11:32)
- достаточно того. что один такой формирователь будет давать импульсы по 101нс, а другой ровно 100, как сия схема будет врать. ну и пересекающиеся импульсы сам счётчик по структуре своей будет считать неверно - Mahagam(11.02.2013 12:10)
- fk0 правильно написал, достаточно поставить два одновибратора на входах (возможно в виде простых RC-цепочек), идентичность длительности тут значения не имеет - koyodza(11.02.2013 12:34)
- Если я правильно понял Mahagam'а, речь идет не об идентичности длительности импульсов, а о том, что в таблице истинности для 74HC192 на стр. 2, отсутствует состояние по входу, при котором одовременно на оба(!) входа и "CLOCK UP" и USSR(311 знак., 11.02.2013 12:53, )
- Согласен. Можно сделать по-другому. Вход каждой частоты пропустить через D-триггеры тактируемые со сдвигом фазы порядка PI (один -- инверсным сигналом) достаточно высокой (заведомо вдвое большей, чем входная частота). Тогда счётчик однозначно fk0(26 знак., 11.02.2013 13:19)
- Так корректно работать не будет, если вспомнить, что для этого счетчика MinPulseWidth(tW, CPU or CPD)=23[nS], а MinHoldTime(tH, CPD to CPU or CPU to CPD)=16[nS], (стр.5, DS). По крайней мере двух D-триггеров не достаточно. Придется сочинять USSR(60 знак., 11.02.2013 15:43, )
- Никаких RC. В выходов триггеров прямо на вход счётчика. Одновременно импульсы больше не приходят. Что не так? - fk0(11.02.2013 16:55)
- Шо, опять 25? Напоминаю: "эта схема работает корректно, только если положительный фронт на любом счетном входе сопровождается "1" на втором." (С, Dir). Так что без одновибратора никак не обойтись. Но и одновибратор нужен не USSR(499 знак., 11.02.2013 18:24, )
- Хорошо. 4 фазы тактового сигнала. В одной 1-й триггер запоминает вход F1, во второй фазе оба триггера сбрасываются, в третьей фазе запоминается F2 во втором триггере, в четвёртой фазе оба триггера принудительно сбрасываются опять. Никаких fk0(29 знак., 11.02.2013 18:38)
- Именно, что громоздко и притом, что задача решается гораздо проще на нормальном МК за 2$. - USSR(11.02.2013 18:40, )
- Хорошо. 4 фазы тактового сигнала. В одной 1-й триггер запоминает вход F1, во второй фазе оба триггера сбрасываются, в третьей фазе запоминается F2 во втором триггере, в четвёртой фазе оба триггера принудительно сбрасываются опять. Никаких fk0(29 знак., 11.02.2013 18:38)
- Шо, опять 25? Напоминаю: "эта схема работает корректно, только если положительный фронт на любом счетном входе сопровождается "1" на втором." (С, Dir). Так что без одновибратора никак не обойтись. Но и одновибратор нужен не USSR(499 знак., 11.02.2013 18:24, )
- Никаких RC. В выходов триггеров прямо на вход счётчика. Одновременно импульсы больше не приходят. Что не так? - fk0(11.02.2013 16:55)
- Так корректно работать не будет, если вспомнить, что для этого счетчика MinPulseWidth(tW, CPU or CPD)=23[nS], а MinHoldTime(tH, CPD to CPU or CPU to CPD)=16[nS], (стр.5, DS). По крайней мере двух D-триггеров не достаточно. Придется сочинять USSR(60 знак., 11.02.2013 15:43, )
- можно сделать внешнюю схему, обеспечивающую отсутствие таких ситуаций, но мне кажется, что это лишнее. Пояснил ниже - koyodza(11.02.2013 13:03, ссылка)
- верно. неча городить огород из мешка DIP-корпусов для беспилотника. плисину и дело с концом )) будет на 200kHz разницу в доли герца ловить ) и результат при этом выдавать 100 раз в секунду - Mahagam(11.02.2013 13:16)
- плисина тут нах не нужна. Даже в исходном виде задача решается на любой меге с 8-битными таймерами, имеющими внешний вход - koyodza(11.02.2013 13:18, ссылка)
- это если нет требований к точности и частоте выдачи показаний. - Mahagam(11.02.2013 13:27)
- частота выдачи не может быть выше периода измерения, а он озвучен порядка 1 сек. Точность от того, будет это реализовано на МК или ПЛИС никак не зависит - koyodza(11.02.2013 13:33)
- Частоту не обязательно влоб измерять, подсчётом импульсов. - fk0(11.02.2013 13:37)
- то само собой, но задача здесь была поставлена именно так. Про то, что скорее всего вообще всё это делается по-другому, я уже говорил - koyodza(11.02.2013 13:53)
- о. не успел тоже самое написать - Mahagam(11.02.2013 13:39)
- Частоту не обязательно влоб измерять, подсчётом импульсов. - fk0(11.02.2013 13:37)
- частота выдачи не может быть выше периода измерения, а он озвучен порядка 1 сек. Точность от того, будет это реализовано на МК или ПЛИС никак не зависит - koyodza(11.02.2013 13:33)
- это если нет требований к точности и частоте выдачи показаний. - Mahagam(11.02.2013 13:27)
- плисина тут нах не нужна. Даже в исходном виде задача решается на любой меге с 8-битными таймерами, имеющими внешний вход - koyodza(11.02.2013 13:18, ссылка)
- верно. неча городить огород из мешка DIP-корпусов для беспилотника. плисину и дело с концом )) будет на 200kHz разницу в доли герца ловить ) и результат при этом выдавать 100 раз в секунду - Mahagam(11.02.2013 13:16)
- Согласен. Можно сделать по-другому. Вход каждой частоты пропустить через D-триггеры тактируемые со сдвигом фазы порядка PI (один -- инверсным сигналом) достаточно высокой (заведомо вдвое большей, чем входная частота). Тогда счётчик однозначно fk0(26 знак., 11.02.2013 13:19)
- в моменты когда импульсы будут пересекаться, импульс пришедший первым будет блокировать другого. более широкий импульс заглушит короткий с большей вероятностью. вот тебе и систематическая погрешность - Mahagam(11.02.2013 12:48)
- совпадать будет не часто, на максимальной частоте сбойными будут не более 2% импульсов. Поскольку сигналы асинхронны, пропуски счёта будут в обе стороны и взаимно компенсироваться. Плохо только если сигналы окажутся синхронными koyodza(125 знак., 11.02.2013 12:54 - 12:57)
- при разных длительностях - вероятности подавления одного сигнала другим неравны. Mahagam(232 знак., 11.02.2013 13:10)
- Ну откуда 2% то?? А если на оба входа подают имульсы с одинаковой частотой 200 КГц +/- 1 Гц? Там же все 100% импульсов будут сбойными. А если уже счетчик попал в метастабильное состояние, то он может вообще выдать на выходе любое число. :) - USSR(11.02.2013 13:08, )
- если на одном входе импульсы 200кГц +1Гц, а на другом -1Гц, то это идеальная ситуация, значит они не синхронны абсолютно, и счёт будет иметь пренебрежимо малую погрешность. Здесь плохо, если на оба входа подан один и тот же сигнал, koyodza(743 знак., 11.02.2013 13:15)
- погрешность будет скакать ровно с частотой биений, и можно снять показания строго на гребне волны. ну точность компенсации будет таки зависеть от длительности. а Ксения про точность ничего не сказала. - Mahagam(11.02.2013 13:27)
- выше fk0 опередил - koyodza(11.02.2013 13:28, ссылка)
- Я как раз имел ввиду, что на одном входе частота 200000 Гц, а на другом или 199999 Гц или 200001 Гц и стартуют они изначально синфазно. Ну и, конечно, по составленным Ксенией ТЗ спорить, как правило, действительно неуместно. :) - USSR(11.02.2013 13:22, )
- погрешность будет скакать ровно с частотой биений, и можно снять показания строго на гребне волны. ну точность компенсации будет таки зависеть от длительности. а Ксения про точность ничего не сказала. - Mahagam(11.02.2013 13:27)
- не инженер вы, вот koyodza сразу прикидки сделал. импульс в 100ns от периода частоты 200kHz и составляет 2%. Mahagam(59 знак., 11.02.2013 13:14)
- Страдать от метастабильности будут не схемы ИЕ7/ИЕ6, а триггер формирования сигнала UP/DOWN, что не лучше. Update. Пардон, не туда посмотрел. Будут страдать как миленькие. Та схема, та ;) - Dir(11.02.2013 13:36 - 13:41)
- не будут. U/D входы не на клок и данные подаются, а на один и тот же клок. и пока один клок активен - второй тупо заблокирован. а пока блокирующий клок держится - все триггера успеют перебросится. так что никакой метастабильности. или я где-то Mahagam(71 знак., 11.02.2013 13:49)
- Схема сугубо асинхронная и для асинхронных цепей. В метастабильность ее может вогнать критичная длина импульса тактирования на входе первого триггера. Со всеми вытекающими последствиями. Update. Ну может это не совсем метастабильность, но сбойнуть Dir(22 знак., 11.02.2013 14:00 - 14:06)
- а кто же ему даст сбойнуть, мы тут по 100ns импульсы пихаем. я упорно водил пальчиком по схеме но путь метастабильного глюка так и не нашёл ) Mahagam(398 знак., 11.02.2013 14:12)
- Enable тут нет. И общего клока тоже. Перенос в следующий разряд (UP или DOWN) ограничен по длине счетными импульсами. Поэтому сильно ограничивать длину импульсов нельзя. Переноса в следующие разряды (счетчик) может не произойти. - Dir(11.02.2013 14:41 - 14:45)
- Отвлекли... Вообще говоря, эта схема работает корректно, только если положительный фронт на любом счетном входе сопровождается "1" на втором. В противном случае логика работы счетчика полностью нарушается. Dir(195 знак., 11.02.2013 15:46)
- неееет. я не про это. берём первые два триггера в нулевом состоянии, вход down в 1. на вход up подаём хороший и оооочень длинный импульс. первый триггер как положено должен перебросится. а второй? не должен, так как ему состояние выхода первого не Mahagam(218 знак., 11.02.2013 17:19, картинка)
- Отвлекли... Вообще говоря, эта схема работает корректно, только если положительный фронт на любом счетном входе сопровождается "1" на втором. В противном случае логика работы счетчика полностью нарушается. Dir(195 знак., 11.02.2013 15:46)
- Enable тут нет. И общего клока тоже. Перенос в следующий разряд (UP или DOWN) ограничен по длине счетными импульсами. Поэтому сильно ограничивать длину импульсов нельзя. Переноса в следующие разряды (счетчик) может не произойти. - Dir(11.02.2013 14:41 - 14:45)
- не должно, я в своё время с ИЕ6 и ИЕ7 работал, плохого не замечал. Однако мы зря спорим koyodza(193 знак., 11.02.2013 14:10)
- а кто же ему даст сбойнуть, мы тут по 100ns импульсы пихаем. я упорно водил пальчиком по схеме но путь метастабильного глюка так и не нашёл ) Mahagam(398 знак., 11.02.2013 14:12)
- Схема сугубо асинхронная и для асинхронных цепей. В метастабильность ее может вогнать критичная длина импульса тактирования на входе первого триггера. Со всеми вытекающими последствиями. Update. Ну может это не совсем метастабильность, но сбойнуть Dir(22 знак., 11.02.2013 14:00 - 14:06)
- не будут. U/D входы не на клок и данные подаются, а на один и тот же клок. и пока один клок активен - второй тупо заблокирован. а пока блокирующий клок держится - все триггера успеют перебросится. так что никакой метастабильности. или я где-то Mahagam(71 знак., 11.02.2013 13:49)
- Страдать от метастабильности будут не схемы ИЕ7/ИЕ6, а триггер формирования сигнала UP/DOWN, что не лучше. Update. Пардон, не туда посмотрел. Будут страдать как миленькие. Та схема, та ;) - Dir(11.02.2013 13:36 - 13:41)
- если на одном входе импульсы 200кГц +1Гц, а на другом -1Гц, то это идеальная ситуация, значит они не синхронны абсолютно, и счёт будет иметь пренебрежимо малую погрешность. Здесь плохо, если на оба входа подан один и тот же сигнал, koyodza(743 знак., 11.02.2013 13:15)
- ... и классическая проблема гонок и метастабильных состояний для асинхронных схем. - Dir(11.02.2013 12:54)
- совпадать будет не часто, на максимальной частоте сбойными будут не более 2% импульсов. Поскольку сигналы асинхронны, пропуски счёта будут в обе стороны и взаимно компенсироваться. Плохо только если сигналы окажутся синхронными koyodza(125 знак., 11.02.2013 12:54 - 12:57)
- Авотху ;) Не достаточно. Сбоить будет при совпадениях импульсов. - Dir(11.02.2013 12:46)
- При совпадении фронтов импульсов. Сами импульсы могут пересекаться. - USSR(11.02.2013 12:55, )
- Если я правильно понял Mahagam'а, речь идет не об идентичности длительности импульсов, а о том, что в таблице истинности для 74HC192 на стр. 2, отсутствует состояние по входу, при котором одовременно на оба(!) входа и "CLOCK UP" и USSR(311 знак., 11.02.2013 12:53, )
- fk0 правильно написал, достаточно поставить два одновибратора на входах (возможно в виде простых RC-цепочек), идентичность длительности тут значения не имеет - koyodza(11.02.2013 12:34)
- достаточно того. что один такой формирователь будет давать импульсы по 101нс, а другой ровно 100, как сия схема будет врать. ну и пересекающиеся импульсы сам счётчик по структуре своей будет считать неверно - Mahagam(11.02.2013 12:10)
- Несложно сделать схему дающую 100нс "0" импульс при переходе 0->1, в остальное время на выходе "1" на паре элементов И-НЕ. - fk0(11.02.2013 11:32)
- ну и в МК они тоже попадаются, таймеры stm32 в режиме энкодера кажется как раз так могут работать - koyodza(09.02.2013 19:44)
- В X-мегах таймеры могут. - saifullin(09.02.2013 19:52)
- не смогут они так работать. на противофазном входе должен быть высокий уровень зафиксирован. - Mahagam(11.02.2013 01:16)
- Таймеры вертятся по кругу, включая старший байт, инкрементируемый по прерыванию переполнения. Сбрасывать их не надо. Достаточно запретить прерывания и поочерёдно считать их полные значения. Далее разрешить прерывания и вычесть предыдущие значения 580BM80(235 знак., 09.02.2013 19:05 - 19:23)
- чорт. ну почему вы ПЛИСины в проект не ставите. на плисине задача решается на раз-два. - Mahagam(09.02.2013 18:58)
- Они дорогучие и ног слишком много. - Ксения(09.02.2013 19:01)
- вы же на самолёт это ставите )) там это недорого )) - Mahagam(09.02.2013 19:05)
- У меня и самолетик дешевый - из бумаги :) - Ксения(09.02.2013 19:08)
- Какой-то самолетик странный.. Неужели, это все задачи, которые ему приходится решать? :) - USSR(09.02.2013 19:11, )
- Он не странный, а ... беспилотный! :) - Ксения(09.02.2013 19:26)
- и вы на это картонное поделие желаете запихать электронику в DIP-корпусах?? а резисторы конечно же, МЛТ-0.25. и конденсаторы МБГЧ наверное ))) - Mahagam(09.02.2013 20:10)
- =)) saifullin(123 знак., 09.02.2013 20:41)
- вы буржуйскую электронику посмотрите для хоббийных самолётиков - банально всё просто крошечное. проще площадью платы вес убрать. а печатки 0.1 мм развалятся от вибраций. - Mahagam(09.02.2013 20:55)
- ну там движки коллекторные дурной мощности. saifullin(113 знак., 09.02.2013 21:27)
- Платы на поликоре делают, но их затем припаивают на основание из ковара. - alex68(09.02.2013 22:18)
- ну там движки коллекторные дурной мощности. saifullin(113 знак., 09.02.2013 21:27)
- вы буржуйскую электронику посмотрите для хоббийных самолётиков - банально всё просто крошечное. проще площадью платы вес убрать. а печатки 0.1 мм развалятся от вибраций. - Mahagam(09.02.2013 20:55)
- =)) saifullin(123 знак., 09.02.2013 20:41)
- Ну тогда соберите все неудобные для МК задачи в одной ПЛИС. Или выбирайте процессор соответственно задаче, а не по принципу "что знаю, то и применяю". - USSR(09.02.2013 19:35, )
- и вы на это картонное поделие желаете запихать электронику в DIP-корпусах?? а резисторы конечно же, МЛТ-0.25. и конденсаторы МБГЧ наверное ))) - Mahagam(09.02.2013 20:10)
- Он не странный, а ... беспилотный! :) - Ксения(09.02.2013 19:26)
- Какой-то самолетик странный.. Неужели, это все задачи, которые ему приходится решать? :) - USSR(09.02.2013 19:11, )
- У меня и самолетик дешевый - из бумаги :) - Ксения(09.02.2013 19:08)
- вы же на самолёт это ставите )) там это недорого )) - Mahagam(09.02.2013 19:05)
- Они дорогучие и ног слишком много. - Ксения(09.02.2013 19:01)
- Прямо дежавю какое-то раз в пару месяцев с такой задачей. Я обычно предлагаю таймер i8254a для внешнего счета :) - Vladimir Ljaschko(09.02.2013 18:35)
- А это очень типичная задача, родственная ЧМ (частотной модуляции). Если бы я сообразила, каким словом ее назвать, то Гуглом бы давно готовые решения отловила. - Ксения(09.02.2013 18:50)
- Вы не ФАПЧ имеете в виду? - rezident(10.02.2013 00:28, ссылка)
- А это очень типичная задача, родственная ЧМ (частотной модуляции). Если бы я сообразила, каким словом ее назвать, то Гуглом бы давно готовые решения отловила. - Ксения(09.02.2013 18:50)
- Сложите два сигнала и отфильтруйте разностную частоту, ее и измеряйте. - alex68(09.02.2013 18:29)
- Не сложите, а перемножте (проксорьте). При сложении как есть никаких новых частот в спектре не появится, если нет какой-либо нелинейности. - fk0(10.02.2013 20:50)
- Ниже это и написал. Но конечно изначально имел ввиду именно XOR - alex68(11.02.2013 00:11)
- Вы меня опередили, этот вариант я уже внесла в отредактированное сообщение, еще не видя вашего. Но как вы предлагаете узнавать из разностной частоты, который из двух генератов спешит? Отрицательных частот же не бывает? - Ксения(09.02.2013 18:31)
- Разница должна быть заведома положительна. Сдвинуть частоту опорного так, чтобы она попадала в середину полосы качания частоты измеряемого генератора. А лучше, как здесь всегда говорят, скажите всю задачу целиком -:) - alex68(09.02.2013 18:35)
- Э нет! Сдвигать опору мне нельзя. Я ее только на словах назвала опорой, а на самом деле схема симметрична. Типа один генератор стоит на одном крыле самолета, а другой на другом. :) - Ксения(09.02.2013 18:53)
- Вот еще что-то. - alex68(09.02.2013 19:28, ссылка)
- Жуть как сложно и непонятно - Ксения(09.02.2013 19:40)
- Вот есть метод в лоб. - alex68(09.02.2013 19:25, картинка)
- Вижу. Можно было бы еще проще, выходы от обоих TC9400 подключить на оба (разнополярных) входа одного ОУ. Вот только сам TC9400 дорогучий, а тут их два. - Ксения(09.02.2013 19:32)
- Тak преобразователи частота-напряжение много кто выпускает. - alex68(09.02.2013 19:34)
- Вижу. Можно было бы еще проще, выходы от обоих TC9400 подключить на оба (разнополярных) входа одного ОУ. Вот только сам TC9400 дорогучий, а тут их два. - Ксения(09.02.2013 19:32)
- Делал измеритель изгиба балки на двух кварцевых пластинах. Одно была приклеена на балку и изгибалась, вторая приклеивалась внутрь балки для температурной компенсации. Два генератора, сумматор и разностная частота показывала степень изгиба. - alex68(09.02.2013 19:18)
- Вот еще что-то. - alex68(09.02.2013 19:28, ссылка)
- Э нет! Сдвигать опору мне нельзя. Я ее только на словах назвала опорой, а на самом деле схема симметрична. Типа один генератор стоит на одном крыле самолета, а другой на другом. :) - Ксения(09.02.2013 18:53)
- Разница должна быть заведома положительна. Сдвинуть частоту опорного так, чтобы она попадала в середину полосы качания частоты измеряемого генератора. А лучше, как здесь всегда говорят, скажите всю задачу целиком -:) - alex68(09.02.2013 18:35)
- Не сложите, а перемножте (проксорьте). При сложении как есть никаких новых частот в спектре не появится, если нет какой-либо нелинейности. - fk0(10.02.2013 20:50)
- А как вы собираетесь 16-ти бинтым счетчиком сосчитать 200000 импульсов? - USSR(09.02.2013 18:28, )
- Сделаю 3-ий байт для счетчика, в который стану добавлять единичку в процедуре прерывания при переполнении таймера. Тогда таймер даже не требуется сбрасывать и перезапускать, т.к. его переполнения считаются отдельно. Устаналивать прерывание на Ксения(110 знак., 09.02.2013 18:38 - 18:41)
- КМК, классический пример, когда задача решается элементарно просто и дешево на 32-битнике с 32-битными таймерами и требует серьезных усилий для 8-битника. - Dir(09.02.2013 18:39)
- А зачем таймер, счётчик? Возьмите 2 ножки и 2 pin change прерывания, их вроде даже у тиньки 6 штук. В каждом прерывании либо индивидуалый трёхбайтный счётчик, либо общий реверсивный на оба прерывания. Частота у Вас низкая, прерывания будут qq(22 знак., 12.02.2013 00:57, )