После общения на форуме и всевозможных экспериментов удалось повысить скорость вывода изображения на куб. ускорение было достигнуто за счет работы с пинами ардуины на как можно более низком уровне.
хотя вся оптимизация коснулась замены функции digitalWrite на конструкцию которая взаимодействует напрямую с пином(точнее с регистром группы пинов)
до оптимизации:
и после оптимизации:
код самой оптимизации выложу позже, после адаптации всех эффектов под оптимизированный код.
За результаты благодарю человека под ником "Whoim" зарегистированным на форуме arduino.ru
хотя вся оптимизация коснулась замены функции digitalWrite на конструкцию которая взаимодействует напрямую с пином(точнее с регистром группы пинов)
и так меняем конструкции типа:
digitalWrite(clock, HIGH); //установка логической 1 на контакт clock
digitalWrite(clock, LOW); // установка логический 0на
PORTD |= (1 << _clock);
//установка логической 1 на контакт clock
PORTD &= ~(1 << _clock);
// установка логический 0
на
Разница в скорости обработки выше более чем в 2 раза, впрочем смотрите на видео:до оптимизации:
и после оптимизации:
За результаты благодарю человека под ником "Whoim" зарегистированным на форуме arduino.ru
Комментариев нет:
Отправить комментарий