1

Тема: Слишком большая длительность программного цикла

Поддержка, админы, окажите помощь советом.

Есть задача управлять электроприводом через Canny 5MD2 (Canny 5 Nano с силовой обвязкой).

Я считываю в диаграмме число импульсов с двух датчиков Холла, чтобы определить текущее положение. Но тут важно в процессе правильно определять направление вращения. Кроме всего привод могут прокрутить руками в любом направлении, и текущее положение нужно отслеживать. Сигналы датчиков смещены на пол волны. И вроде все просто: по фронту одного датчика читаю значение второго и принимаю решение о направлении вращения.
НО, импульсы идут с периодом до 2 мс на максимальной скорости. А длительность программного цикла 4 -5 мс. За это время может и второй импульс уже прилететь... или случится задний фронт уже... И попытка считать значение от второго датчика при фронте сигнала с первого дает ошибочное значение.

На языке C, я бы создал некое прерывание по фронту и всегда четко определял бы в этот момент значение на второй линии и определил бы положение. А как быть без прерываний? Или это в принципе невозможно в CannyLab?

Есть ли какие-нибудь советы по этому поводу? Во вложении картинка с сигналами для обработки, деление 1 мсек

Вложений в сообщении

Сигналы Холла1.jpg, 190.38 кб, 744 x 620
Сигналы Холла1.jpg 190.38 кб, скачивался 8 раз, последний раз 2026-04-23 

2

Re: Слишком большая длительность программного цикла

В системном ПО CANNY 5 Nano пока нет прямой поддержки режима энкодера.

Попробуйте рассмотреть в качестве альтернативы CANNY 5 MD2 контроллер CANNY 5.3 MD1A:
См.: https://canny.ru/docs/c53md1a/io/#sec-- … schetchika

Либо дополнить ваш CANNY 5 MD2 контроллером CANNY 3 Tiny Pro:
См.: https://canny.ru/docs/c3tinypro/io/#sec … schetchika

3

Re: Слишком большая длительность программного цикла

Понял, попробую.
А подскажите пожалуйста, нет ли способа программирования Canny-контроллеров не в CannyLab, а в среде программирования на C/C++
Пусть бы это было наподобие среды ArduinoIDE с примерами, библиотеками и большой аудиторией.

Я выполнил множество проектов на разных ваших платах, и местами ограничения среды разработки заставляет для реализации простых вещей "городить огород".

CannyLab прекрасен для простых проектов, а чуть посложнее и уже возникают вопросы.
Я бы с удовольствием пользовался способом программирования на C/C++

4

Re: Слишком большая длительность программного цикла

Контроллер CANNY 5 Nano вы можете программировать на языке С, например, в среде Microchip MPLAB IDE / MPLAB X.
Документация, примеры, библиотеки и аудитория у Microchip в наличии.
Принципиальная схема контроллера приведена здесь: https://canny.ru/docs/c5nano/#sec--c5na … nny-5-nano

5

Re: Слишком большая длительность программного цикла

Константин, CANNY пишет:

В системном ПО CANNY 5 Nano пока нет прямой поддержки режима энкодера.

Кстати, возможно, удастся добавить в каком-нибудь виде.

6

Re: Слишком большая длительность программного цикла

Попытался запрограммировать PIC18F25K80, на базе которого сделана Canny5Nano, через его же Com-порт, но ничего не получается. Пробовал несколько программ, но не могу даже прочитать информацию... Нет подключения...
Сейчас жду заказанный PICkit для программирования, но очень хочется освоить программирование через COM/
Есть несколько вопросов:
1) Можно ли у технической поддержки выпросить информацию по гарантированно работающему прошивальщику через Rx/Tx, настройкам соединения, расположению бутлоадера в памяти?
2) Бутлоадер, что зашит в плату из коробки, достаточно ли его для прошивки контроллера через Com?
3) Можно ли зашить любой сторонний hex в контроллер через CannyLab, переименовав его в *.ccx?
4) Я же правильно понимаю, что c5nanov00209.ccx по сути - это бутлоадер в формате hex, который нужен для приема прошивки, созданной в CannyLab? И, если я своими экспериментами с контроллером затру бутлоадер, то, зашив c5nanov00209.ccx, верну работоспособность платы для работы с CannyLab?
Эксперименты с платой хочу продолжить, результатами готов делиться на этом форуме. В целом, я предполагаю, что нашлось бы еще немало сподвижников для программирования плат Canny в неких IDE на C++, и могло стать еще одним направлением развития платформы Canny.
Только очень не хочется заново изобретать велосипед в попытках освоить подобные методы... Поможете?

7

Re: Слишком большая длительность программного цикла

1. Не пишутся пики через rx/tx
2. Нет
3. Нет
4. Не правильно вы понимаете

После того как вы пропишете Canny программатором это уже будет не Canny а просто плата с микроконтроллером пик. Обратно в Canny вы его не превратите.

С этим уже точно не сюда а куда то в эту сторону https://ya.ru/search?text=%D0%BF%D1%80% … 1%83%D0%BC

8 (06-05-2026 18:17:48 отредактировано yurka_)

Re: Слишком большая длительность программного цикла

1)Пишутся... через rx/tx. И CannyLab записывает прошивку и бут через CH340X на плате, который эмулирует Com-порт. А выводы ch340x подключены на Rx и Tx нашего Pic/// и Com порт в настройках программы вы выбираете...

Вы, вероятно, не правильно мне подсказываете...

9

Re: Слишком большая длительность программного цикла

Ой всё. Читайте матчасть.

10

Re: Слишком большая длительность программного цикла

Спасибо за "помощь"!
Удаляюсь читать матчасть...