Для Reciprocal Counting понадобится PWM input mode, PWM mode/One-pulse mode (Gate) и Slave timer in Gated mode... никаких прерываний...
Что то не очень прозрачно. PWM INPIT: Таймер тактируется опорным сигналом. На него на два входа захвата, настроенных на противоположные полярности, приходит измеряемый сигнал. В оригинале этот таймер настроен также на сброс по одному из уровней входного сигнала. Таким образом измеряется период сигнала и величина например положительной части периода. PWM mode: Выходной сигнал генерируется с периодом, заданным регистром автозагрузки. Скважность определяется содержимым регистра захвата-сравнения. One-pulse mode: Означает что таймер досчитывает до значения регистра автозагрузки и останавливается. Slave timer in Gated mode: Означает, что тот таймер что делает PWM может включать и выключать второй таймер, который считает входной сигнал.
Один таймер будет просто считать входные импульсы, второй таймер захватит фронт первого импульса сигнала в gate, третий таймер захватит последний фронт (первый фронт после окончания gate) а четвертый таймер будет формировать этот самый gate с помощью PWM для первых двух таймеров в положительной полярности а для последнего в отрицательной. Правильно? Первый таймер будет показывать количесво периодов входного сигнала за интервал gate. Второй таймер в регистре захвата будет содержать время фронта первого импульса сигнала. Третий таймер в регистре захвата будет содержать время последнего, не посчитанного по причине окнчания gate фронта входного сигнала. Разница захватов второго и третьего таймеров даст точное время между первым и последним фронтом входного сигнала в периодах опорного сигнала. Количество периодов сигнала нужно будет увеличить на 1, поскольку последний период не посчитался. Все данные для подстановки в формулу есть. Теперь как сделать таким образом, что бы один таймер управлят сразу тремя? Внешние соединения?
Танунах!!! Леонид Иванович... ну от вас я этого не ожидал!!! Спорить "гоню" я или "не гоню" может только компетентный в STM32 человек... и это, увы, не Вы!!! Так, что... сами Вы гоните... беспросветно!!!
P.S: За "вброс говна на вентилятор" - отдельное спасибо!!!
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Для Reciprocal Counting понадобится PWM input mode, PWM mode/One-pulse mode (Gate) и Slave timer in Gated mode... никаких прерываний...
Что то не очень прозрачно.
Всё прозрачно... Или PWM mode... или One-pulse mode... или-или... зависит от реализации... (Gate)... Один 32-ух разрядный таймер и два 16-ти разрядных(как один 32-ух разрядный)... всё !!! На 1хх можно попытаться обойтись тремя 16-ти разрядными... но не уверен... Вся остальная тягомотина, с бОльшим количеством таймеров, просто лишена смысла... хотя... и имеет право на жизнь...
P.S: Вы мне ещё попробуйте доказать, для смеха, что непрерывный 9-ти битный SPI на PIC24F и STM32F1xx невозможен (хотя по даташиту, действительно, только 8 и 16bit)...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Если нет желания что-то изучать, то никто Вас не заставит. А я себе частотмер уже сделал, нет повода дальше заниматься этой проблемой. http://www.youtube.com/watch?v=VNKCnef-ynU
И слава богу, что никто не заставит. А то ведь кое-кто (не буду показывать пальцем ) уже "изучил". В результате "за базар не отвечает", но пальцы по-прежнему раздвигает. Халява не прокатила . Но до кой-кого это до сих пор не дошло . Насчет "уже сделал частотмер": я себе в 1984-1985 частотомер на 176 серии сделал. До сих пор живой. А в позапрошлом году - еще 2 на PIC-ах. Они там правда бонусом идут, основное там - мерять L,C. Почему и повторялись неоднократно. Догоняйте со своим "уже" . И этой проблемой не занимайтесь - результат предсказуем. По этим самым "частотмеру" и распальцовке про "современные технологии". Зато дарю бесплатно рекламную идею: "не знаете как из конфетки какашку сделать - обращайтесь! Результат гарантируется!" И ссылочку на этот "частотмер" приложить. Принципиальной схемы вполне хватит. Она же с "изюминками" .
2All: Ну задачу для себя хотя бы определите. Даю вводную: у легко покупаемых кварцев стабильность +- 30 ppm. Дальше продолжать?
_________________ Человек - это звучит гордо, а обезьяна - объективно...
я себе в 1984-1985 частотомер на 176 серии сделал. До сих пор живой. А в позапрошлом году - еще 2 на PIC-ах.
Не сомневаюсь, что все частотомеры, которые Вы делали, примитивны и используют метод прямого счета.
"Телепат". Этот частотомер еще и период меряет. Я и тогда знал, когда частоту, а когда период мерять надо.
HHIMERA писал(а):
Может и на STM32F1xx найдётся решение... сильно не вникал...
AN2592 Application note How to achieve 32-bit timer resolution using the link system in STM32F10x microcontrollers (Пример использования 2-х 16-разрядных таймеров как один 32-разрядный)
_________________ Человек - это звучит гордо, а обезьяна - объективно...
Все равно ничего не выйдет. Здесь два таймера должны работать от общего гейта. Без внешней логики не обойтись.
Таймер может работать от внешнего гейта. Так что нужно только правильно соединить снаружи выход PWM и вход гейта.
Я описал как это можно сделать на 4 таймерах. Это stm32 может себе позволить. Я буду признателен, если Химера поделится, как это сделать на 2 таймерах. А то я уж и так и так прикидывал - не получается. Уж умираю от любопытства.
Этот частотомер еще и период меряет. Я и тогда знал, когда частоту, а когда период мерять надо.
Вот я и говорю, что примитивный, раз ручками режимы переключать надо было. Да еще потом на калькуляторе период в частоту переводить. В моем частотомере точность не зависит от частоты, ничего переключать не надо. К тому же, у него разрешение еще как минимум в 20 раз выше благодаря интерполятору. Да что тут спорить? Так строятся все современные частотомеры. Весь мир к этому пришел, кроме консервативных радиолюбителей.
Galizin писал(а):
Таймер может работать от внешнего гейта.
А разве можно без внешней логики сделать так, чтобы сигнал гейта разрешал захват, а не счет таймера?
Кстати, гейт в данном частотомере не нужно формировать прецизионно, можно сформировать программно на любом порту, пользуясь системным таймером, например.
В моем частотомере точность не зависит от частоты, ничего переключать не надо.
А причём здесь Ваш допотопный частотомер с ограниченными функциями??? Тема про "STM32 - частотомер"... если Вы ещё не забыли...
Цитата:
А разве можно без внешней логики сделать так, чтобы сигнал гейта разрешал захват, а не счет таймера?
Кстати, гейт в данном частотомере не нужно формировать прецизионно, можно сформировать программно на любом порту, пользуясь системным таймером, например.
"И эти люди мне запрещают ковыряться в носу!" (С)
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Спасыба, "дарагой"!!! Иди... слушай лекции SWG "О вреде СИ и пользе Паскаля", "Нет такой задачи для одного STM32, которую нельзя было бы сделать на 20-ти PIC'ах или на 30-ти AVR'ах" и "Mein Kampf - РОБОТ"...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Понятно. Получается, Вы тоже не знаете, как реализовать этот метод измерения частоты на STM32. Иначе разложили бы всё по полочкам. А так только общие слова и самоуверенность в речах.
Понятно. Получается, Вы тоже не знаете, как реализовать этот метод измерения частоты на STM32. Иначе разложили бы всё по полочкам. А так только общие слова и самоуверенность в речах.
Знаю... и уже сказал как... "на 99% получится"... А вот проверять в железе... пока желания нет... как, похоже, и у остальных... мне, ведь, частотомер не нужен...
_________________ "Я не даю готовых решений, я заставляю думать!"(С)
Понятно. Получается, Вы тоже не знаете, как реализовать этот метод измерения частоты на STM32. Иначе разложили бы всё по полочкам. А так только общие слова и самоуверенность в речах.
Знаю... и уже сказал как... "на 99% получится"... А вот проверять в железе... пока желания нет... как, похоже, и у остальных... мне, ведь, частотомер не нужен...
Не бери в голову. "Крютой" опять пальцы раздвигает. С рекламой своего "супер-пупер частотомера" и своих "супер-пупер крютых способов". Один раз огреб за шведскую рекламку - видимо мало. Мазохист или тролль... Забить на это - самое правильное... Не лечится...
_________________ Человек - это звучит гордо, а обезьяна - объективно...
С рекламой своего "супер-пупер частотомера" и своих "супер-пупер крютых способов".
Способ крутой, но он разработан не мной, а известен уже много лет. Моя лишь реализация. Плохая или хорошая - решайте сами. Все схемы, платы, прошивки и даже исходники - в открытом доступе. Реализация этого способа на STM32 с минимальными затратами - очень интересная тема, причем она не является здесь офтопиком.
Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения