214 / 10 / 2
Регистрация: 23.05.2016
Сообщений: 380
|
|||||||||||
1 | |||||||||||
Объявление длинных массивов в дополнительных .ino29.04.2021, 05:47. Показов 2180. Ответов 7
Метки нет (Все метки)
Здравствуйте.
Нужна небольшая консультация по ардуино. В программе используется несколько одномерных массивов. Т.к. эти массивы длинные (более 1000 значений в каждом) было решено выделить их в отдельные файлы .ino чтобы не загромождать основной код. В каждом таком файле присутствует строка примерно такого вида:
Но как только я в loop включаю использование любого из этих массивов, например в виде:
'Syp_5' was not declared in this scope Предполагаю, что объявление переменных, включая массивы, не могут быть включены в дополнительные файлы .ino Есть ли способ решить эту проблему или все-таки придется включать все массивы в тело основного кода?
0
|
29.04.2021, 05:47 | |
Ответы с готовыми решениями:
7
дополнительных массивов и файлов не использовать(( Перестановка. Не используя дополнительных массивов, переставить начало и конец Не используя дополнительных массивов переставить начало и конец массива Упорядочить массив размера N по возрастанию. Дополнительных массивов не использовать |
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
|
|||||||||||
29.04.2021, 08:09 | 2 | ||||||||||
0
|
7 / 3 / 4
Регистрация: 01.08.2016
Сообщений: 7
|
|
29.04.2021, 10:40 | 3 |
Сообщение было отмечено ARTMED как решение
Решение
Выделить их в отдельный/отдельные *.h файл/файлы и подключить этот/эти *.h в основном ino.
1
|
214 / 10 / 2
Регистрация: 23.05.2016
Сообщений: 380
|
|
29.04.2021, 14:20 [ТС] | 4 |
Сергей 190, само собой переменная rm32 заранее объявлена как float. И проблема не с переменной rm32, а с массивом, который основной .ino то ли не видит, то ли не желает его видеть как источник объявленных переменных. Кстати проблема даже не с массивом, а с переменной. То есть объявить переменную в дополнительном ino и попытаться использовать её в loop, получим ту же ошибку.
Feofanus, то есть дополнительный файл *.ino переименовываем в *.h и инклюдим его в основном .ino? попробовал с описанием переменной в файле .h, и... получилось. Счас массивы перелопачу.
0
|
7 / 3 / 4
Регистрация: 01.08.2016
Сообщений: 7
|
|
29.04.2021, 14:28 | 5 |
Сообщение было отмечено ARTMED как решение
Решение
Если в дополнительный.ino не напихано ничего лишнего, то да. К примеру, #include "old_ino.h"
1
|
214 / 10 / 2
Регистрация: 23.05.2016
Сообщений: 380
|
|
29.04.2021, 14:35 [ТС] | 6 |
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
29.04.2021, 20:04 | 7 |
это еще те грабли
и когда-нибудь это выстрелит Изучайте С++, хотя бы основы директива #include не подключает никакие библиотеки, как бы не утверждали ардуинщики, она просто переносит содержимое файла из одного в другойв данном случае решение в использовании ключевого слова extern
0
|
Вездепух
11694 / 6373 / 1724
Регистрация: 18.10.2014
Сообщений: 16,066
|
|
04.05.2021, 10:12 | 8 |
Не надо заниматься заведением дополнительных файлов
.ino . Пусть файл .ino будет только один.Заведите дополнительные .h /.cpp файлы и объявите/определите эти массивы по старинке: в .cpp файле определение, а в .h файле - объявление..h файл включайте через #include везде, где вам нужен доступ к массиву.
0
|
04.05.2021, 10:12 | |
04.05.2021, 10:12 | |
Помогаю со студенческими работами здесь
8
Упорядочить массив размера N по возрастанию. Дополнительных массивов не использовать Удалить числа из файла, без использования дополнительных массивов и файлов Отсортировать числа в бинарном файле, не использу дополнительных файлов и массивов Как во время работы программы создать несколько дополнительных массивов Найти неповторяющийся элемент массива без создания дополнительных массивов Объявление массивов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |