Проблема с обнулением массива
- Войдите на сайт для отправки комментариев
Втр, 17/09/2013 - 18:58
Подскжите где косяк ....
int tstArr[1441]; for (int f=0; f<=1440; f++) { Serial.println(" OBNYLIAEM MASSIV "); delay(100); tstArr[f] = 0; }
вот этот кусок кода "вешает" программу ....
Если delay(100); выполнить 1440 раз то так и будет)))
А еще у вас Serial лопнет от потока данных
1440 * 100 = 144000 мили секунд = 144 секунды = ~2.5 минуты
Дело в том, что delay и Serial я сделал просто в этом примере в самом скетче такого нет, но всеравно виснит контроллер хоть так, хоть иначе....
а памяти у вас хватает на него?? у вас там не 4 гига ведь, а int сколько байт занимает в памяти? умножить на 1440 и добавить все остальное. Вобщем не знаете матчасть потому и не работает ...
Я бы, на Вашем месте, выводил на печать отладочную тинформацию... Например, значение счетчика цикла.
renoshnik,
1. сколько оперативной памяти у вашего контроллера?
2. тут почитайте http://arduino.ru/Reference/Array и http://arduino.ru/Tutorial/Memory
3. проще и быстрее обнулить массив можно приблизительно так: memset(&tstArr[0], 0, sizeof(tstArr));
renoshnik,
1. сколько оперативной памяти у вашего контроллера?
2. тут почитайте http://arduino.ru/Reference/Array и http://arduino.ru/Tutorial/Memory
3. проще и быстрее обнулить массив можно приблизительно так: memset(&tstArr[0], 0, sizeof(tstArr));
1 - ATmega328
2 - по ссылкам не особо понял как решить проблемму. поменял где можно int на byte но ничего не изменилось
3 - в таком виде компилятор ругается. пробывал обнулить так memset(tstArr, '\0', 1441); компилятор пропустил но проблемма не решилась...
Если delay(100); выполнить 1440 раз то так и будет)))
А еще у вас Serial лопнет от потока данных
оперативной памяти у вашего контроллера 2048 байт или два килобайта.
массив byte testArr[1440] займёт три четверти объёма памяти. Массив int с таким же количеством элементов не уместится в памяти.
Скорее всего глюки из-за нехватки памяти.
оперативной памяти у вашего контроллера 2048 байт или два килобайта.
массив byte testArr[1440] займёт три четверти объёма памяти. Массив int с таким же количеством элементов не уместится в памяти.
Скорее всего глюки из-за нехватки памяти.
понял... прийдётся искать другое решение...