Странная ситуация с производительностью.
- Войдите на сайт для отправки комментариев
Чт, 14/05/2015 - 21:37
Странная ситуация с производительностью.
Есть родная megа 2560. Старовата, но дофига пинов итп.
Хотел прикрутить её к простой задаче, в числе прочего понадобился двухразрядный семисегментный индикатор.
Нашел какую-то библиотеку динамической индикации.
Моргает. Ощутимо.
Дальнейшие разборки показали, что loop вызывается раз в 30-40 МИЛЛИСЕКУНД !!!
Откуда столько не могу понять :(
Это действительно норма ?
К примеру такое
void setup() {
Serial.begin(9600);
Serial.println("--- Start Serial Monitor SEND_RCVE ---");
}
void loop()
{
unsigned long currentMillis = millis();
Serial.print("currentMillis=");
Serial.println(currentMillis);
Serial.print("cycle=");
Serial.println(millis()-currentMillis);
}
Дает на выходе такое
currentMillis=0
cycle=0
currentMillis=1
cycle=23
currentMillis=28
cycle=25
currentMillis=57
cycle=25
currentMillis=87
cycle=24
currentMillis=115
cycle=27
currentMillis=146
cycle=26
currentMillis=176
cycle=26
currentMillis=206
Serial.print* довольно сильно замедляет loop. Используй ее только для отладки, а после закомментируй все упоминания - скорость возрастет в 2-3 раза.
Если медленно, то уже сказали почему, если быстро, то смотрим сюда:
Да, спасибо, тоже уже допер, что дело в нём.
Стало получше, но как-то всё равно довольно нешустро.
Каких-нибудь профайлеров не бывает простых в использовании ?
http://habrahabr.ru/post/141442/
http://istarik.ru/blog/arduino/1.html