| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Счетчик Меги под свою задачу. https://radiokot.ru/forum/viewtopic.php?f=66&t=193342 |
Страница 1 из 2 |
| Автор: | Влад56 [ Вс май 05, 2024 17:49:08 ] |
| Заголовок сообщения: | Счетчик Меги под свою задачу. |
Внутренние счетчики Меги 2560 которых аж целых 5 задействованы для реализации различных команд IDE ардуино (millis();digitalWrite(); ) и т.п. Вопрос вот в чем. Есть ли в самой среде ардуино возможности задействовать один из этих счетчиков для счета внешних импульсов в десятичную переменную? Или для этого нужно ваять что то на Си+ например, и загонять на Мегу через программатор? А может есть уже готовая библиотека для этого? |
|
| Автор: | veso74 [ Вс май 05, 2024 18:05:50 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Не очень понятно, что нужно. Дайте подробности. Все доступно из среды, а также для запись скомпилированного кода из Arduino IDE в МК. |
|
| Автор: | Влад56 [ Вс май 05, 2024 18:31:55 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Не очень понятно, что нужно. Дайте подробности. Считать импульсы с энкодера, подключая его на один из пинов Меги и используя один из штатных таймеров/счетчиков микропроцессора. Ваять для этого скетч или встраивать код для подсчета импульсов в уже готовую программу не желательно. Ну то есть с регистров внутреннего счетчика получить переменную равную количеству поступивших на ногу импульсов в заданный момент времени. |
|
| Автор: | BOB51 [ Вс май 05, 2024 20:09:14 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Для функций "референса" IDE используются только Т0, Т1 и Т2. Остальное надо самостоятельно активировать/использовать. То же и Т1 -Т2 касается, если не использовать основанные на их применении функции референса IDE. Программную поддержку самостоятельного применения таймеров или берем из соответствующих библиотек (в тырнете) или пишем самостоятельно. |
|
| Автор: | veso74 [ Вс май 05, 2024 22:50:45 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Отчеты о времени не нужны для подсчета импульсов от энкодера. Есть внешнее прерывание, есть прерывание при изменении состояния пина, есть polling в loop и т. д. |
|
| Автор: | Влад56 [ Пн май 06, 2024 08:39:23 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Для функций "референса" IDE используются только Т0, Т1 и Т2. Остальное надо самостоятельно активировать/использовать. То же и Т1 -Т2 касается, если не использовать основанные на их применении функции референса IDE. Программную поддержку самостоятельного применения таймеров или берем из соответствующих библиотек (в тырнете) или пишем самостоятельно. А какие команды IDE можно использовать для активации названных таймеров? Если они есть там конечно. В "тырнете" только для управления ШИМ волной библиотеку вижу. Похоже для моей задачи она не подходит. |
|
| Автор: | BOB51 [ Пн май 06, 2024 11:32:24 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
В ардуино IDE относительно АВР микроконтроллеров используется Си и/или С++ (GCC). Вот собственно на нём и пишем необходимое дополнение. |
|
| Автор: | veso74 [ Пн май 06, 2024 13:38:32 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
СпойлерOC0A PB7 Pin 13 (Yes, same pin as OC1C)OC0B PG5 Pin 4 OC1A PB5 Pin 11 OC1B PB6 Pin 12 OC1C PB7 Pin 13 (Yes, same pin as OC0A) OC2A PB4 Pin 10 OC2B PH6 Pin 9 OC3A PE3 Pin 5 OC3B PE4 Pin 2 OC3C PE5 Pin 3 OC4A PH3 Pin 6 OC4B PH4 Pin 7 OC4C PH5 Pin 8 OC5A PL3 Pin 46 OC5B PL4 Pin 45 OC5C PL5 Pin 44 https://github.com/RoboUlbricht/arduino ... atmega2560 Используя каждый из таймеров в blink. Следуйте идее и используйте их для выбранного приложения. |
|
| Автор: | Влад56 [ Пн май 06, 2024 15:05:35 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
В ардуино IDE относительно АВР микроконтроллеров используется Си и/или С++ (GCC). Вот собственно на нём и пишем необходимое дополнение. Так а сама IDE способна Си либо Си++ компилировать? Возможно потом через USB залить скомпилированный файл? Добавлено after 8 minutes 23 seconds: СпойлерOC0A PB7 Pin 13 (Yes, same pin as OC1C)OC0B PG5 Pin 4 OC1A PB5 Pin 11 OC1B PB6 Pin 12 OC1C PB7 Pin 13 (Yes, same pin as OC0A) OC2A PB4 Pin 10 OC2B PH6 Pin 9 OC3A PE3 Pin 5 OC3B PE4 Pin 2 OC3C PE5 Pin 3 OC4A PH3 Pin 6 OC4B PH4 Pin 7 OC4C PH5 Pin 8 OC5A PL3 Pin 46 OC5B PL4 Pin 45 OC5C PL5 Pin 44 https://github.com/RoboUlbricht/arduino ... atmega2560 Используя каждый из таймеров в blink. Следуйте идее и используйте их для выбранного приложения. |
|
| Автор: | BOB51 [ Пн май 06, 2024 17:59:23 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
... Так а сама IDE способна Си либо Си++ компилировать? Возможно потом через USB залить скомпилированный файл?... Так она ж для того и применяется... |
|
| Автор: | Morroc [ Пн май 06, 2024 21:49:28 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Внутренние счетчики Меги 2560 которых аж целых 5 задействованы для реализации различных команд IDE ардуино (millis();digitalWrite(); ) и т.п. Если не использовать tone и шим, то аж целый один реально задействован. Вопрос вот в чем. Есть ли в самой среде ардуино возможности задействовать один из этих счетчиков для счета внешних импульсов в десятичную переменную? Или для этого нужно ваять что то на Си+ например, и загонять на Мегу через программатор? А может есть уже готовая библиотека для этого? Что то типа этого https://arduino.ru/forum/pesochnitsa-ra ... chnik-na-v |
|
| Автор: | AVK [ Пн май 06, 2024 22:37:44 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Ардуино IDE дает полный доступ ко всем регистрам контроллера. Ибо основано там все на GCC компиляторе. Открываем "Микроконтроллеры AVR семейства MEGA" Евстифеева, разбираемся как работает нужный нам таймер и через какие регистры и прерывания, пишем все что придет в голову и радуемся. Таймеры устроены крайне просто. |
|
| Автор: | BOB51 [ Вт май 07, 2024 02:13:02 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Лучше таки оригинальный даташит на ту мегу 2560 перечитать. |
|
| Автор: | Morroc [ Вт май 07, 2024 10:36:11 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Лучше, но долго ) Добавлено after 2 minutes 10 seconds: Ну то есть с регистров внутреннего счетчика получить переменную равную количеству поступивших на ногу импульсов в заданный момент времени. У вас энкодер в одну сторону только крутится ? С механических стандартных энкодеров очень нежелательно так считать - ложные срабатывания будут, стандартная обработка двух каналов часть таких игнорит. Ног на 2560 не хватает что ли ? oO |
|
| Автор: | Влад56 [ Чт май 09, 2024 09:15:49 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Лучше, но долго ) Добавлено after 2 minutes 10 seconds: Ну то есть с регистров внутреннего счетчика получить переменную равную количеству поступивших на ногу импульсов в заданный момент времени. У вас энкодер в одну сторону только крутится ? С механических стандартных энкодеров очень нежелательно так считать - ложные срабатывания будут, стандартная обработка двух каналов часть таких игнорит. Ног на 2560 не хватает что ли ? oO 4 шим сигнала, 2 из которых формирую одновременно, 2 других в это время стоят, хоть и подключены к ногам. Плюс одна серва работает одновременно с парой шим. Энкодер крутиться на движке в обе стороны, и сбрасывается в ноль с очередным реверсом, поэтому разницы для счета нет. А вот ложные срабатывания да были, пока конденсатор не запараллелил на вход и стало на порядок лучше. Думаю потому как фронт импульса слегка сгладил. Ног то хватает. Проблема в том, что идет коррекция скорости двигателя с интервалом по времени и есть опасения пропустить её в момент прерывания. Добавлено after 6 minutes 21 second: Лучше таки оригинальный даташит на ту мегу 2560 перечитать. Думаю да, придется аппаратную часть изучать. А одновременно и в Си++ углубиться. |
|
| Автор: | BOB51 [ Чт май 09, 2024 12:11:00 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Читайте, может и пригодится: http://www.gaw.ru/html.cgi/txt/doc/micr ... /index.htm https://www.aipcba.ru/datasheet/program ... 55125.html Однако иногда надо сначала и над схемками устройства и его вариантами подумать... |
|
| Автор: | Morroc [ Сб май 11, 2024 19:44:34 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Проблема в том, что идет коррекция скорости двигателя с интервалом по времени и есть опасения пропустить её в момент прерывания. Если другие прерывания отрабатывают быстрее интервалов между импульсами и сам энкодер тоже прерывания вызывает, то не должно бы пропустить. |
|
| Автор: | Влад56 [ Сб май 11, 2024 20:19:30 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Проблема в том, что идет коррекция скорости двигателя с интервалом по времени и есть опасения пропустить её в момент прерывания. Если другие прерывания отрабатывают быстрее интервалов между импульсами и сам энкодер тоже прерывания вызывает, то не должно бы пропустить. Наверно не точно выразил мысль. Прерывания по энкодеру могут совпасть с моментом снятия показаний счетчика. Оно снятие и коррекция идут в строго определенный момент 5 раз в секунду плюс минус 5 мсек с интервалом 200 мсек. Что само по себе интересно, срабатывает условие почему то 201, 401, 601 .. и т.д., несмотря на рамки +- 5 мсек. Добавлено after 16 minutes 20 seconds: Читайте, может и пригодится: http://www.gaw.ru/html.cgi/txt/doc/micr ... /index.htm https://www.aipcba.ru/datasheet/program ... 55125.html Однако иногда надо сначала и над схемками устройства и его вариантами подумать... Схемка 10 разрядного счетчика и была спаяна на макетке из 155ТМ2, благо было в запасе еще с советских времен. А снимается в переменную через bitWrite() по параллельному каналу из 10 штырьков. На один такой счетчик надо подключить два попеременно работающих энкодера. Проблемка в том что работает пока боле-менее один. Как только вторую линию подключаешь, на счетчике начинается свистопляска. Думаю то же будет если внутренний таймер процессора задействовать. Попробовать диоды в обе линии воткнуть? |
|
| Автор: | BOB51 [ Вс май 12, 2024 10:18:12 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Когда-то делал "на поиграться" программный обработчик энкодера на малолапом варианте АВР/ПИК - МК только для обработки и получения счетного импульса и флага направления. Или две входных линии МК на энкодер при программном опросе этих линий. (Тинька 13я или пик12F508 да демо-тест на адуринко-нанке). Сорбственно сам алгоритм: https://img.radiokot.ru/files/20529/3g35mrq2nk.GIF |
|
| Автор: | Morroc [ Вс май 12, 2024 13:31:00 ] |
| Заголовок сообщения: | Re: Счетчик Меги под свою задачу. |
Прерывания по энкодеру могут совпасть с моментом снятия показаний счетчика. Навскидку не вижу в этом ничего страшного. |
|
| Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


