Сразу хочу сказать, я не прошу готовых вариантов. Никогда не работал с изображением. Нужны примеры, ссылки на вменяемые источники. Сдвиг картинки влево\вправо как нефиг делать, вверх\вниз начинается кипение мозгов. Уточню, двигать преобразованный массив не трудно-как влево\вправо. Запарка началась вот где:
Светодиодная матрица собрана по следующей схеме:аноды-столбцы, катоды-строки. Хексы выводимых данных:
0b00000000
0b00001110
0b00010001 ; На скору руку
0b00010001 ; накидал букву А
0b00011111
0b00010001
0b00010001
0b00010001
Индикация осуществляется следующим образом:
Включаем столбец, на катоды выводим соответствующий столбец. То есть, для такого вывода требуется преобразовать выводимый массив 8х8, поменять местами оси Х и У.
Пока реализованы сдвиги картинки влево-вправо. Как сейчас работает:
Накидывал самому себе, разбираюсь.
DISPLAY_BUFFER - данные на вывод, на матрицу.
EFFECTS_BUFFER - данные отображаемые сейчас.
Алгоритм:
Горизонтальный сдвиг:
Инициализация:
Считывание из источника в LEFT_BUFFER\RIGHT_BUFFER.
Копирование из EFFECTS_BUFFER в TEMP_BUFFER.
Преобразование из TEMP_BUFFER в DISPLAY_BUFFER.
Сдвиг:
сдвиг из LEFT_BUFFER\RIGHT_BUFFER в EFFECTS_BUFFER.
Копирование из EFFECTS_BUFFER в TEMP_BUFFER.
Преобразование из TEMP_BUFFER в DISPLAY_BUFFER.
С этим разбираюсь:
Вертикальный сдвиг:
Инициализация:
Считывание из источника в TEMP_BUFFER.
Преобразование в UP_BUFFER\DOWN_BUFFER.
Сдвиг:
Сдвиг.
Преобразование в DISPLAY_BUFFER.
Понимаю, что что-то где-то не так. Нет информации и примеров.