Максимальный размер массива?
- Войдите на сайт для отправки комментариев
Пт, 03/05/2013 - 23:46
Хочется прикинуть максимальный размер массива который можно разместить в своей программе.
Плата ArduinoMEGA2560 оригинал.
10Кb - это код. 2 массива с одинаковым размером BYTE myP[] = {2, 4, 8, 3, 6........};
Компилятор Arduino 1.0.1
Сколько можно втиснуть (зависит от компилятора?) 255 значений BYTE, 65535 значений? или больше?
Проверить самому пока нет возможности, надо переводить в программу значения.Если другой способ, типа линковки файла в котором лежат значения BYTE не в текстовом формате, а как BYTE 1байт - 1 значение?
Зависит от объема оперативной памяти.
всего 8K ОЗУ?? за минусом переменных программы?
в ZX -SPECTRUME было 48К, в продвинутых 128К, потом 1М приделали...
а флешпамять 256К только для программы? нельзя ли её задействовать? Только на чтение.
Надо под рукой иметь 2 массива максимально по 64Кb в качестве значений "волны" для ЦАП.
По следам генератора на сайте http://cxem.net/arduino/arduino62.php
сказано "Для синусоидально сигнала, я написал простой скрипт на Python, который выводит 20000 значений"
"сохранил этот массив в памяти Arduino под названием sine20000[] и беру из него значения которые необходимо отправить в ЦАП. Это намного быстрее, чем вычислять значения каждый раз."
byte sine20000[] PROGMEM = {127, 127, 127, 127,....
вроде дошло ключ PROGMEM указывает где массив воткнуть, проверю как соберу данные
ну такой массив ограничется только ПЗУ, если скорость выборки значений не принципиальна и жалко выводов, можно взять какую нить флешку с SPI интерфейсом и набить ее до упора вашим массивом...
если не ошибаюсь макс скорость spi sck/4, то нормальная скорость выборки массива получается
а флешпамять 256К только для программы? нельзя ли её задействовать? Только на чтение.
Надо под рукой иметь 2 массива максимально по 64Кb в качестве значений "волны" для ЦАП.
byte sine20000[] PROGMEM = {127, 127, 127, 127,....
вроде дошло ключ PROGMEM указывает где массив воткнуть, проверю как соберу данные
если не ошибаюсь макс скорость spi sck/4
у меня отдельный шилд SD карты есть, но пока не планирую использовать. Пока в программе жестко прошить массив.
Скорость нужна маленькая, до 1Кb секс.
Расчёт 256-8 (загрузчик)=248-48 (прога)=200
Значит 2 массива по 100Kb можно прописать.
Позже просто прошивку обновлять с соседней ардуины выбирая с карты СД нужную прошивку с волной.
Резисторы составляют собой восьмибитный ЦАП, его точность соответственно порядка 1/256, поэтому достаточно иметь порядка 256 значений синуса в таблице. Вот пример: "http://interface.khm.de/index.php/lab/experiments/arduino-dds-sinewave-generator/"
Можно нагуглить перевод этой статьи.
Спасибо!