Счетчик Меги под свою задачу.

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Влад56
Открыл глаза
Сообщения: 79
Зарегистрирован: Сб июн 17, 2023 12:05:56

Счетчик Меги под свою задачу.

Сообщение Влад56 »

Внутренние счетчики Меги 2560 которых аж целых 5 задействованы для реализации различных команд IDE ардуино (millis();digitalWrite(); ) и т.п. Вопрос вот в чем.
Есть ли в самой среде ардуино возможности задействовать один из этих счетчиков для счета внешних импульсов в десятичную переменную? Или для этого нужно ваять что то на Си+ например, и загонять на Мегу через программатор? А может есть уже готовая библиотека для этого?
Реклама
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Счетчик Меги под свою задачу.

Сообщение veso74 »

Не очень понятно, что нужно. Дайте подробности.
Все доступно из среды, а также для запись скомпилированного кода из Arduino IDE в МК.
Реклама
Влад56
Открыл глаза
Сообщения: 79
Зарегистрирован: Сб июн 17, 2023 12:05:56

Re: Счетчик Меги под свою задачу.

Сообщение Влад56 »

[uquote="veso74",url="/forum/viewtopic.php?p=4576614#p4576614"]Не очень понятно, что нужно. Дайте подробности.[/uquote]
Считать импульсы с энкодера, подключая его на один из пинов Меги и используя один из штатных таймеров/счетчиков микропроцессора. Ваять для этого скетч или встраивать код для подсчета импульсов в уже готовую программу не желательно.
Ну то есть с регистров внутреннего счетчика получить переменную равную количеству поступивших на ногу импульсов в заданный момент времени.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Счетчик Меги под свою задачу.

Сообщение BOB51 »

Для функций "референса" IDE используются только Т0, Т1 и Т2.
Остальное надо самостоятельно активировать/использовать.
То же и Т1 -Т2 касается, если не использовать основанные на их применении функции референса IDE.
Программную поддержку самостоятельного применения таймеров или берем из соответствующих библиотек (в тырнете) или пишем самостоятельно.
8)
Реклама
Эиком - электронные компоненты и радиодетали
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Счетчик Меги под свою задачу.

Сообщение veso74 »

Отчеты о времени не нужны для подсчета импульсов от энкодера. Есть внешнее прерывание, есть прерывание при изменении состояния пина, есть polling в loop и т. д.
Реклама
Влад56
Открыл глаза
Сообщения: 79
Зарегистрирован: Сб июн 17, 2023 12:05:56

Re: Счетчик Меги под свою задачу.

Сообщение Влад56 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4576678#p4576678"]Для функций "референса" IDE используются только Т0, Т1 и Т2.
Остальное надо самостоятельно активировать/использовать.
То же и Т1 -Т2 касается, если не использовать основанные на их применении функции референса IDE.
Программную поддержку самостоятельного применения таймеров или берем из соответствующих библиотек (в тырнете) или пишем самостоятельно.
8)[/uquote]
А какие команды IDE можно использовать для активации названных таймеров? Если они есть там конечно.
В "тырнете" только для управления ШИМ волной библиотеку вижу. Похоже для моей задачи она не подходит.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Счетчик Меги под свою задачу.

Сообщение BOB51 »

В ардуино IDE относительно АВР микроконтроллеров используется Си и/или С++ (GCC).
Вот собственно на нём и пишем необходимое дополнение.
8)
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Счетчик Меги под свою задачу.

Сообщение veso74 »

Спойлер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
Открыл глаза
Сообщения: 79
Зарегистрирован: Сб июн 17, 2023 12:05:56

Re: Счетчик Меги под свою задачу.

Сообщение Влад56 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4576870#p4576870"]В ардуино IDE относительно АВР микроконтроллеров используется Си и/или С++ (GCC).
Вот собственно на нём и пишем необходимое дополнение.
8)[/uquote]
Так а сама IDE способна Си либо Си++ компилировать? Возможно потом через USB залить скомпилированный файл?

Добавлено after 8 minutes 23 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4576938#p4576938"]
Спойлер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. Следуйте идее и используйте их для выбранного приложения.[/uquote]
:roll: Без знания аппаратной части мне мало о чем говорит.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Счетчик Меги под свою задачу.

Сообщение BOB51 »

[uquote="Влад56",url="/forum/viewtopic.php?p=4576962#p4576962"]...
Так а сама IDE способна Си либо Си++ компилировать? Возможно потом через USB залить скомпилированный файл?...[/uquote]
Так она ж для того и применяется...
:shock:
Последний раз редактировалось BOB51 Вт май 07, 2024 02:11:29, всего редактировалось 2 раза.
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Счетчик Меги под свою задачу.

Сообщение Morroc »

[uquote="Влад56",url="/forum/viewtopic.php?p=4576610#p4576610"]Внутренние счетчики Меги 2560 которых аж целых 5 задействованы для реализации различных команд IDE ардуино (millis();digitalWrite(); ) и т.п.[/uquote]
Если не использовать tone и шим, то аж целый один реально задействован.

[uquote="Влад56",url="/forum/viewtopic.php?p=4576610#p4576610"]Вопрос вот в чем.
Есть ли в самой среде ардуино возможности задействовать один из этих счетчиков для счета внешних импульсов в десятичную переменную? Или для этого нужно ваять что то на Си+ например, и загонять на Мегу через программатор? А может есть уже готовая библиотека для этого?[/uquote]

Что то типа этого https://arduino.ru/forum/pesochnitsa-ra ... chnik-na-v
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

Re: Счетчик Меги под свою задачу.

Сообщение AVK »

Ардуино IDE дает полный доступ ко всем регистрам контроллера. Ибо основано там все на GCC компиляторе.
Открываем "Микроконтроллеры AVR семейства MEGA" Евстифеева, разбираемся как работает нужный нам таймер и через какие регистры и прерывания, пишем все что придет в голову и радуемся.
Таймеры устроены крайне просто.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Счетчик Меги под свою задачу.

Сообщение BOB51 »

Лучше таки оригинальный даташит на ту мегу 2560 перечитать.
8)
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Счетчик Меги под свою задачу.

Сообщение Morroc »

Лучше, но долго )

Добавлено after 2 minutes 10 seconds:
[uquote="Влад56",url="/forum/viewtopic.php?p=4576628#p4576628"]Ну то есть с регистров внутреннего счетчика получить переменную равную количеству поступивших на ногу импульсов в заданный момент времени.[/uquote]
У вас энкодер в одну сторону только крутится ? С механических стандартных энкодеров очень нежелательно так считать - ложные срабатывания будут, стандартная обработка двух каналов часть таких игнорит. Ног на 2560 не хватает что ли ? oO
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Влад56
Открыл глаза
Сообщения: 79
Зарегистрирован: Сб июн 17, 2023 12:05:56

Re: Счетчик Меги под свою задачу.

Сообщение Влад56 »

[uquote="Morroc",url="/forum/viewtopic.php?p=4577231#p4577231"]Лучше, но долго )

Добавлено after 2 minutes 10 seconds:
[uquote="Влад56",url="/forum/viewtopic.php?p=4576628#p4576628"]Ну то есть с регистров внутреннего счетчика получить переменную равную количеству поступивших на ногу импульсов в заданный момент времени.[/uquote]
У вас энкодер в одну сторону только крутится ? С механических стандартных энкодеров очень нежелательно так считать - ложные срабатывания будут, стандартная обработка двух каналов часть таких игнорит. Ног на 2560 не хватает что ли ? oO[/uquote]
4 шим сигнала, 2 из которых формирую одновременно, 2 других в это время стоят, хоть и подключены к ногам. Плюс одна серва работает одновременно с парой шим. Энкодер крутиться на движке в обе стороны, и сбрасывается в ноль с очередным реверсом, поэтому разницы для счета нет. А вот ложные срабатывания да были, пока конденсатор не запараллелил на вход и стало на порядок лучше. Думаю потому как фронт импульса слегка сгладил. Ног то хватает. Проблема в том, что идет коррекция скорости двигателя с интервалом по времени и есть опасения пропустить её в момент прерывания.

Добавлено after 6 minutes 21 second:
[uquote="BOB51",url="/forum/viewtopic.php?p=4577154#p4577154"]Лучше таки оригинальный даташит на ту мегу 2560 перечитать.
8)[/uquote]
Думаю да, придется аппаратную часть изучать. А одновременно и в Си++ углубиться.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Счетчик Меги под свою задачу.

Сообщение BOB51 »

Читайте, может и пригодится:
http://www.gaw.ru/html.cgi/txt/doc/micr ... /index.htm
https://www.aipcba.ru/datasheet/program ... 55125.html
Однако иногда надо сначала и над схемками устройства и его вариантами подумать...
:wink:
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Счетчик Меги под свою задачу.

Сообщение Morroc »

[uquote="Влад56",url="/forum/viewtopic.php?p=4577845#p4577845"]Проблема в том, что идет коррекция скорости двигателя с интервалом по времени и есть опасения пропустить её в момент прерывания.[/uquote]
Если другие прерывания отрабатывают быстрее интервалов между импульсами и сам энкодер тоже прерывания вызывает, то не должно бы пропустить.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Влад56
Открыл глаза
Сообщения: 79
Зарегистрирован: Сб июн 17, 2023 12:05:56

Re: Счетчик Меги под свою задачу.

Сообщение Влад56 »

[uquote="Morroc",url="/forum/viewtopic.php?p=4578642#p4578642"][uquote="Влад56",url="/forum/viewtopic.php?p=4577845#p4577845"]Проблема в том, что идет коррекция скорости двигателя с интервалом по времени и есть опасения пропустить её в момент прерывания.[/uquote]
Если другие прерывания отрабатывают быстрее интервалов между импульсами и сам энкодер тоже прерывания вызывает, то не должно бы пропустить.[/uquote]
Наверно не точно выразил мысль.
Прерывания по энкодеру могут совпасть с моментом снятия показаний счетчика. Оно снятие и коррекция идут в строго определенный момент 5 раз в секунду плюс минус 5 мсек с интервалом 200 мсек. Что само по себе интересно, срабатывает условие почему то 201, 401, 601 .. и т.д., несмотря на рамки +- 5 мсек.

Добавлено after 16 minutes 20 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=4577910#p4577910"]Читайте, может и пригодится:
http://www.gaw.ru/html.cgi/txt/doc/micr ... /index.htm
https://www.aipcba.ru/datasheet/program ... 55125.html
Однако иногда надо сначала и над схемками устройства и его вариантами подумать...
:wink:[/uquote]
Схемка 10 разрядного счетчика и была спаяна на макетке из 155ТМ2, благо было в запасе еще с советских времен. А снимается в переменную через bitWrite() по параллельному каналу из 10 штырьков. На один такой счетчик надо подключить два попеременно работающих энкодера. Проблемка в том что работает пока боле-менее один. Как только вторую линию подключаешь, на счетчике начинается свистопляска. Думаю то же будет если внутренний таймер процессора задействовать. Попробовать диоды в обе линии воткнуть?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Счетчик Меги под свою задачу.

Сообщение BOB51 »

Когда-то делал "на поиграться" программный обработчик энкодера на малолапом варианте АВР/ПИК - МК только для обработки и получения счетного импульса и флага направления. Или две входных линии МК на энкодер при программном опросе этих линий. (Тинька 13я или пик12F508 да демо-тест на адуринко-нанке).
Сорбственно сам алгоритм:
https://img.radiokot.ru/files/20529/3g35mrq2nk.GIF
8)
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Счетчик Меги под свою задачу.

Сообщение Morroc »

[uquote="Влад56",url="/forum/viewtopic.php?p=4578643#p4578643"]Прерывания по энкодеру могут совпасть с моментом снятия показаний счетчика.[/uquote]
Навскидку не вижу в этом ничего страшного.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Ответить

Вернуться в «Arduino»