Для обеспечения нужного быстродействия на Си пришлось выводить пикселы так:
(пример для 4 градации серого)
- Код: Выделить всё • Развернуть
VPORT = lvideo[ 0]; PIXEL_SIZE2 VPORT<<=2; PIXEL_SIZE2 VPORT<<=2; PIXEL_SIZE2 VPORT<<=2; PIXEL_SIZE2
VPORT = lvideo[ 1]; PIXEL_SIZE2 VPORT<<=2; PIXEL_SIZE2 VPORT<<=2; PIXEL_SIZE2 VPORT<<=2; PIXEL_SIZE2
Т.о. на порту есть старшие 2 бита с нужными данными и 6 бит с левыми данными с соседних пикселей.
На экране получается каша.
Если перевести порт в режим 6 и 7 бит выход, остальные вход - то получается почти нормально (как сейчас у меня), но из-за того, что там неуправляемое значение (0 или 1 в зависимости от картинки) то входы настраиваются или в высокоомные или с подтяжкой на питание, что и вызывает влияние на картинку. Если их разъединить физически, то картинка идеальная, поэтому мне и нужен программный размыкатель, который я буду переключать в зависимости от устанавливаемого режима.
Добавлено спустя 41 секунду:PIXEL_SIZE2 - это макрос задержки
VPORT это у меня PORTB