RP2040 и таймер
- Войдите на сайт для отправки комментариев
Ср, 12/10/2022 - 23:50
У платы RP2040 надо посчитать количество тактов опорной частоты с определенного момента. Например если частота работы платы 125 МГц а интервал 2 секунды количество тактов должно быть 250М. Может кто нибудь подсказать как это сделать на Си или написать ссылку на статью?
Пока код такой.
Считываю значение Т1 затем делаю задержку в 1000000 мкс. (эта задержка только для демонстрации). Затем считываю значение Т2.
Значение Т3 конечный результат, который мне нужен. Но у него точность только 1 мкс. Нашел по ссылке переменную time.monotonic_ns() но не знаю как ее применить в данном коде?
https://digitology.tech/docs/python_3/library/time.html
вы в чем программируете? в инете куча рецептов как с LCD1602 работать , а в SDK есть готовый пример, в том числе и с таймерами, а то получается что у вас код под Arduino IDE, а ссылку вы привели для Питона. Определитесь уже.
Я программирую в Arduino IDE. Как работать с таймерами я нашел только для Питона. Поэтому ссылку и написал для питона. Если есть готовый пример для Arduino IDE прошу скинуть ссылку. Я не нашел как работать с таймером. Надо измерить интервал времени между двумя событиями с точностью до десятков наносекунд.
Возможно ли, что это то, что мне надо?
https://habr.com/ru/post/422443/
Не уверен, но думаю не найдёте такой пример под ide.
Так во 2 посте Вы пишите, что есть готовый пример под SDK. Вот и прошу ссылку на этот пример.
дык вы его все равно без костылей не прикрутите к Arduino IDE
https://arduino.ru/forum/apparatnye-voprosy/raspberry-pi-pico#comment-66...
pico-examples/i2c/lcd_1602_i2c at master · raspberrypi/pico-examples · GitHub
pico-examples/timer_lowlevel.c at master · raspberrypi/pico-examples · GitHub
вот из примеров уже в реальный проект миллисекундный таймер, есть микросекундный, наверняка если покапаться по документации, то есть еще более быстрый счетчик .
У платы RP2040 надо посчитать количество тактов опорной частоты с определенного момента. Например если частота работы платы 125 МГц а интервал 2 секунды количество тактов должно быть 250М. Может кто нибудь подсказать как это сделать на Си или написать ссылку на статью?
а чем определяется "определенный момент"?
Навскидку вроде все просто - на старте запускаете таймер на тактовой частоте, без делителя. В "определенный момент" просто читаете значение его счетчика, вот и все.
Это при условии, что измеряемый интервал меньше времени переполнения. Если больше - придется добавить счетчик числа переполнений на прерывании.