Хранение информации в массиве.

Xumuk-LNR
Offline
Зарегистрирован: 05.01.2017

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

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Поконкретнее нельзя? Что за числа? Любые от 0 до 999 или есть какие-то ограничения?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Он читает АЦП на протяжение 1-2 сек, (тема про фоторезистор)

дальше хочет типа на карту SD это скинуть и прочесть на компе.

но ни схемы, ни скеча нет !

это теоритические размышления, как и 

Xumuk-LNR пишет:

"Дело в том что скорости переброски по кабелю не хватает, для этого нужно предварительное сохранение."

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Xumuk-LNR, у Ардуино есть оперативная память. У разных моделей - разный объем.

Для начала прикиньте, каков объем данных, которые нужно сохранить. Если он больше объема оперативной памяти (или даже чуть-чуть меньше), задача в общем случае невыполнима.

None
Offline
Зарегистрирован: 15.01.2016

2 тысячи даже двухбайтных значений Мега256 или 128 вполне переварит со своими 8Кб ОЗУ. Ну и никто кроме неё.

А логика простая, обьявить массив с длиной превышающей даже теоретическое количество данных + запас. Например 2,5 тысячи ячеек, считываем в цикле в массив, а потом передаем эти значения так же в цикле на ПК.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. ДЛя того, чтобы считать массив и передать его в ПК массив вообще не нужен.

2. Объявить массив с длиной превышающий объем данных мне даже на ПК не удавалось.

None
Offline
Зарегистрирован: 15.01.2016

Ну учитывая, что этот вопрос вообще был задан, с того края интернета сидит такой же новичёк как я.

а указание на создание массива например

int array[500];

не дает контроллеру указание выделить 1000 байт из ОЗУ?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

None пишет:

а указание на создание массива например

int array[500];

не дает контроллеру указание выделить 1000 байт из ОЗУ?

Нет.

Можете проверить сами: берете любой скетч, хотя бв blink, компилируете его и смотрите расход оперативной памяти. После этого добавляете в него указанную строчку, повторяете операцию и делаете выводы.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а потом в сетапе пишешь arr[0]=inputRead(A0) (например) и снова проверяешь.  Если к массиву не обращаешьса, линкер его выкинет, если обращаешься - сразу резервируеца место под массив. 

jur@
Offline
Зарегистрирован: 06.01.2017

Карточка  SD устроит? сохраняешь на карту, грузишь файл на компе... объем практически не ограничен.. Можно сделать из microSD-SD адаптера, рабочие примеры есть.