Почему скетч и схема для Ардуино Нано не работает на Меге?

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

Вячеслав70
Посмотрел я Ваш исходник...
От ардуино там только компиляция.
Автор исходника по максимуму прошелся по аппаратным модулям, причем зацепил и те, что обычно системой используются.
Это скорее просто СИ для АВРок под ардуино IDE, причем с заявкой на максимальную оптимизацию под минимальный размер кода (и с нулевыми комментариями).
Доработать такое разве что автор того проекта быстро и качественно сможет сделать.
8)
Компилируется данный исходник и под атмегу2560 - выбираем в вкладке
инструменты -> ArduinoAVRboards -> arduino Mega or mega 2560
затем в строке выбора МК платформы выставляем соответственно
Atmega(mega 2560)...
А вот будет ли работать программка в конечном устройстве - это уже на везенье вопрос.
Ну и нумерация выводов ардуино не всегда соответствует таковой для портов АВРок.
Сравните:
раскладка нанки
A000005-full-pinout_nano328p.pdf
(230.07 КБ) 99 скачиваний
и раскладка меги (платка чуток иная, но соответствие выводов то же самое)
A000067-full-pinoutMea2560.pdf
(445.25 КБ) 89 скачиваний
К примеру тот же ардуиновский D5
для нанки это будет PD5 - порт D
а для меги уже PE3 - порт E
вот это расхождение и надо учитывать при подключении выводов. Программа то работает именно с портами АВР МК, а не с нумерацией ардуино нано (или ардуино меги)!
:wink:
Аватара пользователя
HardWareMan
Мучитель микросхем
Сообщения: 429
Зарегистрирован: Ср сен 02, 2015 07:47:20

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение HardWareMan »

Ну вот, именно об этом все вышеотписавшиеся и говорили.
PS И помимо портов не забудьте ещё и про имена ISR.
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 22 апреля 2026 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.
/!\ Обновлений для STM32PowerMon и STM32PowerMon-UCPD временно не будет.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

Я ж выше уже отметил - компиляция для меги 2560 без критических ошибок. Т. Е. Если бы были ошибки в абревиатурах и/или используемых ресурсах то при компиляции под иной МК они были бы явно отмечены как ошибки.
Несколько "вармингов" при проверке одинаковы что для меги328, что для меги2560 - вряд ли особо на работу повлияют.
А вот разница в соответствие наименования Пина/вывода ардуино линии наименованию бита/лапки/вывода порта МК на разных "платформах" может быть весьма существенно в отношении внешней схемотехники. В результате присоединяем кнопки/светики совершенно к незадействованным выводам платки.
Как правило всегда помимо даташита МК необходимо смотреть и "карту раскладки выводов" конкретной платформы.
Иногда и по несколько разных вариантов в одной платформе встретить можно.
:wink:
В то же время при работе с программой "в рамках референта" подобных казусов даже при разных МК спокойно можно избежать.
8)
Вячеслав70
Встал на лапы
Сообщения: 128
Зарегистрирован: Пн мар 08, 2021 10:55:43

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение Вячеслав70 »

Спасибо всем! Нарисую схему,выложу здесь вместе со скетчем. Надеюсь,разберемся.

Добавлено after 2 minutes 20 seconds:
[uquote="HardWareMan",url="/forum/viewtopic.php?p=4734978#p4734978"]Ну вот, именно об этом все вышеотписавшиеся и говорили.
PS И помимо портов не забудьте ещё и про имена ISR.[/uquote]
А что такое имена ISR? Объясните пожалуйста. :(
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение OKF »

[uquote="HardWareMan",url="/forum/viewtopic.php?p=4734978#p4734978"]PS И помимо портов не забудьте ещё и про имена ISR.[/uquote]
Вот вот. Ардуино не имеет портов, как и имён ISR.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

интерапт сервис рутине (корявенько) - вектора подпрограмм обслуживания прерываний.
В "референсе" явно оговорено только для AVR МК.
(
External Interrupts
attachInterrupt()
detachInterrupt()
)
Для Си - смотрим внимательно даташиты и соответствующие библиотеки (avr/interrupt.h к примеру)...
8)
Кыстати... насчет формфактор "ардуино нано/ардуино про-мини"...
помимо китайских LGT8Fxxx (в общем то тоже разновидность АВРок)
есть еще "ардуино-нано R4"... от ренесас... по внешним выводам один в один со "стандартной" нанкой, а вот по начинке... :facepalm:
Может кому уже живьем попадалась?
:roll:
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение roman.com »

Вячеслав70 писал(а):А что такое имена ISR? Объясните пожалуйста.
а на этом форуме трудно получить чёткий ответ на конкретно поставленный вопрос.
тут все слишком "вумные" ))
:)))

ISR (Interrupt Service Routine) в Arduino — программа обработки прерываний (обработчик прерывания). Это блок кода, который выполняется при возникновении прерывания — сигнала, прерывающего нормальное течение программы.

Принцип работы
Когда поступает сигнал прерывания, микроконтроллер:
-Останавливает выполнение основной программы и сохраняет текущий контекст.
-Переходит к вектору прерывания (адресу), где находится соответствующая функция ISR.
-Выполняет функцию ISR до завершения.
-Возвращает контекст основной программы и переходит к тому месту, где он оставил основную программу.
:roll:

Особенности ISR:
-Не принимает параметры, кроме вектора прерывания.
-Не возвращает значение.
-Обычно должна быть короткой и быстрой, чтобы минимизировать прерывание основного кода программы.
:roll:

Ничего не принимает... Ничего не возвращает))
:)))
говорю же... надо выкинуть эту Ардуино и писать по нормальному. На чистом Си или Ассемблере.
:tea:
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение OKF »

[uquote="roman.com",url="/forum/viewtopic.php?p=4735049#p4735049"]...надо выкинуть эту Ардуино и писать по нормальному. На чистом Си или Ассемблере.
:tea:[/uquote]
Долой ассемблер. По нормальному - это 01 и тетрадь в клеточку. Назад к истокам!
Вячеслав70
Встал на лапы
Сообщения: 128
Зарегистрирован: Пн мар 08, 2021 10:55:43

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение Вячеслав70 »

Короче господа,вот текст программы для Нано и схема. Это 48 клавишный музыкальный синтезатор.Здесь два генератора с меандром на выходах. Так же в каждом генераторе вход для модуляции(LFO1,LFO2) На втором генераторе регулятор Detune(расстройка) в пределах одной октавы.И сигнал Строб(Gate). Клавиатура- контактно-диодная матрица 8х8 и дешифратор К155ИД3.Все работает без нареканий,но дело в том,что здесь первый генератор сидит на 8 битном таймере,потому большая погрешность частоты нот(1,5-2%). А второй на 16 битном,здесь все нормально.Вот поэтому я решил доработать программу для Ардуино Мега 2560.К тому же в нем вроде четыре 16 битных таймера. Ну и добавить еще в каждом генераторе по выходу с пилой,и может быть с треугольником. :))
Вложения
IMG_20250730_161049.jpg
(114.68 КБ) 126 скачиваний
Скетч.txt
(17.04 КБ) 102 скачивания
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

Для такого случая вам придется детально изучать даташит на атмегу2560.
8)
Или отдать предпочтение иным схемотехническим решениям по синтезу звука, а только управление отдать МК.
Вариантов там весьма много.
8)
Пы.Сы...
на колодке разьема нужно указать не столько аббревиатуру ардуино (Dn -Dm), сколько соответствующие им выводы портов АВРки (меги328Р) - тогда соответствующий перенос на ардуино мегу2560 легче сделать будет.
:roll:
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3780
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение Ser60 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4735033#p4735033"]есть еще "ардуино-нано R4"... от ренесас... Может кому уже живьем попадалась?[/uquote]
Интересная платка. Основной её недостаток (для меня) - поддержка только через Arduino IDE. У Renesas есть целая линейка своих плат разработки с возможностью отладки через SWD интерфейс и поддержкой через их очень удобную и бесплатную среду e2 Studio. Есть ещё (правда, недешёвая) плата RA4M1 CLICKER от Mikroe с разъёмом форм-фактора mikroBUS с подобным функционалом также поддерживаемая e2. А для любителей Arduino на основе этого МК есть плата Waveshare R7FA4 Plus A почти за ту же цену и совсем дешёвая Seeed Studio XIAO RA4M1.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

Тогда пока можно спокойно с науками на АВРаах работать.
Шанс нарваться на другой МК пока что достаточно низкий.
:roll:
С другой стороны... Много чего интересного появляется кто помоложе вполне может и освоит.
:beer:
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение veso74 »

Как и всех предполагали, не вижу Arduino в этом коде.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

Это вариант использования готовой платки с 328й мегой плюс компилятора Си без маке файла (что вполне выполнимо в ардуино IDE при хорошем знании документации МК, GCC и "внутреннего устройства" самой IDE).
Однако и вопросы помощи в модернизации исходники придется знатокам Си для АВРок адресовать (а они ардуино на нюх не переносят :wink: )
8)
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение veso74 »

Если это так, то лучше ... написать новую программу :). Например, с 32-битным таймером. Но ... с другим микроконтроллером.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

Вот автор вопроса для того и хочет мегу2560 использовать.
С учётом чуток большего количества аппаратных модулей в её составе.
Мало того это ж вариант музыкального инструмента - тут надо и в музыкальной грамоте/терминологии разбираться...
А я в музыкальной грамоте ни в зуб (но слушать люблю).
8)
Вячеслав70
Встал на лапы
Сообщения: 128
Зарегистрирован: Пн мар 08, 2021 10:55:43

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение Вячеслав70 »

[uquote="veso74",url="/forum/viewtopic.php?p=4735146#p4735146"]Если это так, то лучше ... написать новую программу :). Например, с 32-битным таймером. Но ... с другим микроконтроллером.[/uquote]
Кому писать то,мне,я в ардуино ноль.Пришел сюда,чтоб помогли.Ну для начала хотя бы изменить раскладку пинов Нано, в программе под 2560. Дальше видно будет. :shock:
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение OKF »

[uquote="Вячеслав70",url="/forum/viewtopic.php?p=4735095#p4735095"]Все работает без нареканий,но дело в том,что здесь первый генератор сидит на 8 битном таймере,потому большая погрешность частоты нот(1,5-2%). А второй на 16 битном,здесь все нормально[/uquote]
Можно использовать таймер2 совместно с таймер 0 - получится 16-ти битный таймер, аналогичный таймеру 1.
Вячеслав70
Встал на лапы
Сообщения: 128
Зарегистрирован: Пн мар 08, 2021 10:55:43

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение Вячеслав70 »

Почему то тогда разработчик так не делал,наверно таймер 2 был занят? В скетче это видно,нет?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Почему скетч и схема для Ардуино Нано не работает на Мег

Сообщение BOB51 »

Похоже придется таки или заново программу делать или разраба беспокоить.
1. у ардуино-мега2560 не выведены на контактную гребенку выводы PD4 -PD6 (у микросхемы они имеются, но изготовители ардуино мега их не задействовали). в исходнике (судя по схемке) использованы PD4 b PD6...
2. у меги2560 выходы OC0B и OC1A заведены на другие порты, отличные от PD6 и PB1 для 328й.
Возможны и иные "тонкости" по использованию/управлению АЦП (помимо того, что АЦП у меги2560 висит на PF, а у меги 328 на PC).
Плюс от референса ардуино в исходнике вообще ничего - обычный Си, только в ардуино IDE скомпилирован да еще и без единого комментария.
Тут таки или полная переделка по даташиту и полному описанию функционала исходника (стандартно для обычной разработки на СИ согласно построения исходника) внимательно вычитывая разделы по таймерам, АЦП и их управлению для каждого из МК и сверяя их функциональное и аппаратное соответствие, или автору надо было использовать правила референса ардуино - тогда перенос мог быть легко выполним.
К сожалению - такова доля гибридных проектов с жестким использованием аппаратной привязки к конкретному МК.
8)
Ответить

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