Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Re: Arduino IDE в вопросах и ответах

Ср янв 17, 2024 19:25:39

debounce(boolean last) - ? Что здесь важное функциональное слово, а что можно заменить например одной буквой?
Здесь debounce - имя функции, выбираемое пользователем, а last - формальный параметр функции, в теле которой определено как использовать этот параметр, передаваемый функции при её вызове (в данном случае из функции loop()). Оба этих имени по желанию программиста можно заменить "одной буквой" в Вашей терминологии. Стоит-ли так делать вопрос отдельный.
Вот что есть что вот в этой фразе коварной b]boolean debounce(boolean last)[/b] ?
В этой фразе помимо имени функции и её формального параметра определяется тип параметров функции и тип её возвращаемого значения. Это нужно компилятору для проверки правильности использования этой функции при вызове.
В строке №16 фраза: if (last != current). Как программа понимает, что есть last , а что есть current?
Здесь last - параметр переданный функции из loop(), а current - определён в первой строке тела функции (boolean current = digitalRead(BUTTON);), в данном случае текущее состояние кнопки.

Содержательно, в эта функция используется для борьбы с дребезгом маханических кнопок. В функции debounce проверяется текущее состояние кнопки с таковым во время предыдущего вызова этой функции. В случае неравенства делается вывод, что состояние кнопки изменилось в промежутке между вызовами. В этом случае состояние кнопки считывается ещё раз спустя 5мс (при этом предполагается, что в течении этого промежутка времени дребезг закончится и пин кнопки перейдёт в устойчивое состояние). Это не слишком надёжный алгоритм, но для начала сойдёт.

Далее, в функции loop() при соблюдении условия if (lastButton == LOW && currentButton == HIGH) делается вывод, что произошло нажатие кнопки и инвертируется состояние светодиода.

Re: Arduino IDE в вопросах и ответах

Ср янв 17, 2024 19:55:37

Здесь last - параметр переданный функции из loop()
А в какой именно строке это происходит?
То есть я правильно понимаю:
1) Имя любой функции в среде IDE подсвечивается оранжевым?
2) Почему тогда, к примеру, в функции pinMode (BUTTON, INPUT); мы не определяем тип, а в функции boolean debounce(boolean last) - здесь определен тип - boolean ?
3) Получается, написав любое "словечко" и после него в круглых скобках тоже что-нибудь написать, то получается как бы самодельная функция?
4) Вот например в функции pinMode (BUTTON, INPUT); в скобках всегда устоявшееся правило: первое значение это название, которое присвоилось заранее, а второе значение - это одно из двух состояний: на вход или на выход) С этим понятно. Как пользоваться этой функцией подробно пояснялось. А вот в функции boolean debounce(boolean last) какие правила действуют для круглых скобок? Что именно в них разрешено писать? Почему в последующих таких же функциях не указан тип, а в этой указан (boolen) ? Тут только один параметр, или их можно через запятые перечислять? Как это узнать?

Re: Arduino IDE в вопросах и ответах

Ср янв 17, 2024 20:22:34

Здесь last - параметр переданный функции из loop()
А в какой именно строке это происходит?
Это происходит в строке currentButton = debounce(lastButton);

То есть я правильно понимаю:
1) Имя любой функции в среде IDE подсвечивается оранжевым?
Не знаю, поскольку не работаю с Arduino.

2) Почему тогда, к примеру, в функции pinMode (BUTTON, INPUT); мы не определяем тип, а в функции boolean debounce(boolean last) - здесь определен тип - boolean ?
Потому что pinMode - это библиотечная функция определённая в соответствующем хедере библиотеки, а debounce - это функция пользователя, определённая в данном случае только в приложенном коде.

3) Получается, написав любое "словечко" и после него в круглых скобках тоже что-нибудь написать, то получается как бы самодельная функция?
Как-бы да.

4) Вот например в функции pinMode (BUTTON, INPUT); в скобках всегда устоявшееся правило: первое значение это название, которое присвоилось заранее, а второе значение - это одно из двух состояний: на вход или на выход) С этим понятно. Как пользоваться этой функцией подробно пояснялось. А вот в функции boolean debounce(boolean last) какие правила действуют для круглых скобок? Что именно в них разрешено писать? Почему в последующих таких же функциях не указан тип, а в этой указан (boolen) ? Тут только один параметр, или их можно через запятые перечислять? Как это узнать?
У функции debounce только один параметр, т.е. именно столько, сколько указано в её определении. Про использование этой функции см. ответ на первый вопрос.

Re: Arduino IDE в вопросах и ответах

Чт янв 18, 2024 00:14:18

Ser60, благодарю :beer:

Re: Arduino IDE в вопросах и ответах

Вс фев 11, 2024 13:36:52

Для тех, у кого виндовс 7 или 10.
Вышло обновление IDE версия 2.3.0.
:roll:

Re: Arduino IDE вНа вин7 не работает. А со 2 вопросах и отв

Вс фев 11, 2024 14:40:13

На win7 не работает.
А со v2 началось "начало конца" :) (для меня).

Re: Arduino IDE в вопросах и ответах

Вс фев 11, 2024 15:39:38

Она же только для Х64, в случае Х32 не пойдет.
Я на компе с 10кой Х64 "обновлением" поставил - там вполне работает.
На 7ке не пробовал - там стоит 1.8.19 портабла - пока вполне достаточно.
Кстати... хорошее обновление у нашей AVRDUDESS - версия 2.16
https://www.radiokot.ru/forum/viewtopic ... 7#p4540937
работает (проверял) и на 7ке Х64 на 10ке Х64 - на ХР Х32 же не установить к сожалению.
:beer:

Re: Arduino IDE в вопросах и ответах

Сб мар 02, 2024 10:17:18

Уважаемые радиокоты, подскажите пожалуйста, в IDE версии 2.3.2 в мониторе порта (где отображаются графики) можно ли как-то регулировать масштабирование графиков? А то неудобно, масштаб сам постоянно прыгает и общей картины не видно. Ну или хотя бы замедлить течение времени.
----------
Второй вопрос: в этих же графиках внизу слева "Type Message" в реальном времени задаю числовое значение - что-то в графиках изменяется, но такое только 1 раз почему-то делается. Потом другое числовое значение ничего не изменяет в графиках. У Вас так тоже, или я что-то не так делаю?
----------
Еще один вопросик: для чего в правом верхнем углу нужен движок "interpolate" ?
Изображение

Re: Arduino IDE в вопросах и ответах

Пн мар 04, 2024 01:09:57

Столкнулся только что с интересной проблемой: не могу записать загрузчик "ардуино Nano" с помощью USBASP. При этом загрузчик minicore для atmega 328PB для этой же платы успешно записывается :dont_know: Так же с помощью USBASP можно записать и скетч. Но через среду IDE и без программатора ничего не прошивается. Полагаю, из-за того, что загрузчик "ардуино Nano" не зашит. Не могу понять, где косяк спрятан :roll:
На других платах все работает. Они тоже клоны ардуино, только у них Меги не "328PB", а просто "328P" :roll:
----------
Попробовал выцепить хекс файл блинка из глубин установленной IDE. Блинк именно с прелодером. Записал его в область флеш моего микроконтроллера атмега 328PB, и случилось чудо: теперь загрузчик записан в мою ардуино нано и с помощью IDE теперь спокойно заливаются скетчи. 8) Но я так и не догнал, почему отдельно загрузчик не зеливаетсяв ардуино нано с помощью программатора USBASP& :dont_know: Подскажите пожалуйста :roll:

Re: Arduino IDE в вопросах и ответах

Пн мар 04, 2024 14:00:33

Для такой меги(РВ) нужна установленная платформа MiniCore...
А ее пределах и записываем загрузчик с фузами.
С теми платормами от MCUdude имела место неполадка - при установке обновления пропадала настройка "внешних" программаторов. Лечил откатом назад и переустановкой на более новые версии:
major Core 3.0.1
mega Core 3.0.1
micro Core 2.3.0
mighty Core 3.0.1
mini Core 3.0.1
Теоретически - на практике проверить не на чем (нету меги328РВ в наличии).
Да и прошивалка у меня на базе ардуиноISP из нанки сделанного.
:roll:

Re: Arduino IDE в вопросах и ответах

Вт мар 05, 2024 11:57:29

Для такой меги(РВ) нужна установленная платформа MiniCore...
А в ее пределах и записываем загрузчик с фузами.
Вот, у меня как раз Minicore установлена. И загрузчик успешно записывается через программатор (судя по успешному логу), но после этого скетчи не записываются, как будто нет загрузчика. Да и по внешним признакам его действительно нет: при подаче питания на ардуинку ничего не мигает. Вернее загрузчик должен отмигиваться какую-то секунду, а потом исполняться основной код, вот он не отмигивается после такой прошивки.
Попробую что-нибудь из этого установить:
major Core 3.0.1
mega Core 3.0.1
micro Core 2.3.0
mighty Core 3.0.1
mini Core 3.0.1

Потом отпишусь.
С теми платормами от MCUdude имела место неполадка - при установке обновления пропадала настройка "внешних" программаторов.
Это Вы имеете в виду вот этот список пропадал? :
Изображение

Добавлено after 51 minute 12 seconds:
Сторонние библиотеки, скачанные с Гитхаба почему-то не удается установить. Пробовал распаковывать и вручную в папку Libraries вставлять, пробовал автоматом через ZIP-архив - не хотят устанавливаться почему-то. Но у них содержимое довольно сильно отличается от стандартных. Есть ли способ решения?

Re: Arduino IDE в вопросах и ответах

Вт мар 05, 2024 12:47:32

Вот именно по тому списку... Не помню уже с какой из указанных платформ от MCUdude та болячка выскочила - просто пришлось на старую версию откатываться с пол-года.
Платформа обновляет и версию софтинки программатора avrdude - вот там и возникли какие-то "трения" при обновлении до 7.2-arduino.1...
Относительно 328РВ...
Ее еще в этой платформе встретить можно:
Код:
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_atmega8_series_index.json

:roll:
Насчет "...отмигиваться каждую секунду..." - мигалку включает программа блинк, установленная при изготовлении платки (в соответствии с версией бутлоадера в нанке или блинк /старая версия/ или вывод кодовой таблицы символов/те, что поновее/) сам "чистый бутлоадер" максимум вспышку при включении выдаст (попытка обмена с ПК).
8)

Re: Arduino IDE в вопросах и ответах

Вт мар 05, 2024 21:54:19

Насчет "...отмигиваться каждую секунду..." - мигалку включает программа блинк, установленная при изготовлении платки (в соответствии с версией бутлоадера в нанке или блинк /старая версия/ или вывод кодовой таблицы символов/те, что поновее/) сам "чистый бутлоадер" максимум вспышку при включении выдаст (попытка обмена с ПК).
8)
нет, не каждую секунду, а "какую-то", яимел в виду какое-то непродолжительное время.
"чистый бутлоадер" максимум вспышку при включении выдаст (попытка обмена с ПК).
- вот это "отмигивание" я и имею в виду. Ну у меня не одна вспышка, а несколько кратковременных, а потом уже начинает работать цикличный стабильный неспешный код blink :)
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_atmega8_series_index.json
- А что это такое и как этим пользоваться?

Re: Arduino IDE в вопросах и ответах

Вт мар 05, 2024 22:44:18

Это строчка ссылки для автоматического добавления платформы.
открываем файл - настройки - дополнительные ссылки для менеджера плат - справа от окошка иконку тыць - откроется окошко со ссылками...
Туда и вставляем. Затем "ОК"...
Затем закрываем все и запускаем менеджер платформ - в нем появится новая платформа...
Жмем установить...
8)

Re: Arduino IDE в вопросах и ответах

Вт мар 05, 2024 23:57:33

Платформу удалось добавить. И действительно в менеджере плата появилась атмега 328PB. Но вот при записи загрузчика с помощью программатора в логе появляется ошибка Error while burning the bootloader: Property 'bootloader.tool.serial' is undefined. Прошлый загрузчик не портится при этом.
Скрин настроек:
Изображение

Re: Arduino IDE в вопросах и ответах

Ср мар 06, 2024 08:30:02

Как дела обстоят с инсталляшкой 2.3.2 не скажу - в основном пользуюсь портабле версиями 1.8.9 (ХР х32) или 1.8.19 (win x64).
2.3.2 только как "для ознакомления" стоит.
Там (у портабле версий) чуток проще просмотр каталогов - все в одном основном (без запрятанного "скрытого").
У Вас показывает что неопределен (или не установился как положено) bootloader.tool.serial...
:roll:

Re: Arduino IDE в вопросах и ответах

Ср мар 06, 2024 09:48:12

Попробую я ее все-таки переустановить, потому что папки с программой по всему компьютеру расплостались. И в документах и в програм файлс, и в пользователях... Такого наверное быть не должно, правильно?

Re: Arduino IDE в вопросах и ответах

Ср мар 06, 2024 09:52:46

Есть у меня платка с 328РВ, и что-то я на ней делал. Корячилась она вовсю, но после танцев с бубнами всё получилось.
Однако в конечном итоге я купил 328Р и поставил её в эту платку вместо 328РВ. :))

Re: Arduino IDE в вопросах и ответах

Чт мар 07, 2024 23:20:35

ART_ME но вот у 328PB функционал поинтереснее. Хорошо бы было совладать все-таки с этой мегой. Не, вернее, загрузчик-то записывается, но просто другим способом, нестандартным. А хотелось бы разобраться, в чем петрушка со стандартным способом. У вас какая сейчас версия IDE? С 328PB больше не работаете?

Re: Arduino IDE в вопросах и ответах

Пт мар 08, 2024 06:43:31

2.3.2
Выпаянный 328PB лежит в коробочке.
Ответить