Попытался запустить NyanCat.ino на Iskra Neo Получил сообщение : Sketch uses 9 364 bytes (32%) of program storage space. Maximum is 28 672 bytes. Global variables use 2 017 bytes (78%) of dynamic memory, leaving 543 bytes for local variables. Maximum is 2 560 bytes. Low memory available, stability problems may occur. Вместо искры поставил мегу, все заработало В чем подвох ? У меня установлен IDE 1.7.7
@Борис, попробуйте разместить массивы во flash памяти, используя модификатор переменной const PROGMEM Код (C++): //подключаем библиотеку #include <avr/pgmspace.h> //размещаем ноты в памяти const PROGMEM int melody[] = const PROGMEM int noteDurations[] =
ZAZ-965 спасибо. помогло. Меня смутило сообщение: Low memory available, stability problems may occur. Теперь его нет. Вероятно на него не надо было обращать внимание
Видимо под стек мало памяти осталось. А поскольку потребный размер стека компилятор не определяет, вот такое предупреждение получается.
На все сообщения компилятора нужно обращать внимание. У меня на IDE 1.80 исходный скетч занял Код (Text): Скетч использует 8802 байт (30%) памяти устройства. Всего доступно 28672 байт. Глобальные переменные используют 2019 байт (78%) динамической памяти, оставляя 541 байт для локальных переменных. Максимум: 2560 байт. С указанием константные значения хранить во flash Код (Text): Скетч использует 8802 байт (30%) памяти устройства. Всего доступно 28672 байт. Глобальные переменные используют 183 байт (7%) динамической памяти, оставляя 2377 байт для локальных переменных. Максимум: 2560 байт. То есть массив не занимает динамическую память (не переносится в память при начале инициализации скетча) .
Да, сборка от arduino.cc и в предыдущих версиях выдавала сообщения на русском. А судя по одному гитхаб репозиторию, arduino.org и arduino.cc наконец объединили кодовую базу.
Забыл, из flash памяти читаем с помощью макроса pgm_read_word_near, т.е. строки обращения к noteDurations и melody будут выглядеть так Код (C++): //считываем массив из памяти int noteDuration = 1200 / pgm_read_word_near (noteDurations+thisNote); tone(BUZZER, octaveMul * pgm_read_word_near (melody+thisNote), noteDuration);
Поправил скетч и установил 1.8.0. Компиляция идет без без странных сообщений Все работает, внуки радуются Спасибо за дельные советы.