Коллеги, выполняю заливку разными цветами на SSD1963 c помощью STM32F4Discovery.
Контроллер SSD1963 обновляет дисплей за 12 мсек.
Дискавери заливает картинку за 22 мсек.
То есть вроде бы 22 мсек меньше чем 12мсек*2 и борьба с фликером возможна.
Что я делаю - отлавливаю TE сигнал, после его спада жду 500 мксек и вывожу картинку.
Осциллограмму прилагаю - синий график - это импульсы TE, идущие из SSD1963, красные импульсы - по фронту - начало заливки, по спаду - окончание заливки.
Код вот, если что
Код
while(1)
{
while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==0) {}
while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1) {}
delay_us(500);
GPIO_SetBits(GPIOD, GPIO_Pin_12);
SSD1963_FillScr(GUI_RED);
GPIO_ResetBits(GPIOD, GPIO_Pin_12);
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==0) {}
while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1) {}
delay_us(500);
GPIO_SetBits(GPIOD, GPIO_Pin_12);
SSD1963_FillScr(GUI_GREEN);
GPIO_ResetBits(GPIOD, GPIO_Pin_12);
delay_ms(50);
while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==0) {}
while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1) {}
delay_us(500);
GPIO_SetBits(GPIOD, GPIO_Pin_12);
SSD1963_FillScr(GUI_BLUE);
GPIO_ResetBits(GPIOD, GPIO_Pin_12);
delay_ms(50);
}
Мерцание есть. Визуально - две косые линии на весь экран.
Что делать и кто виноват?
Сообщение отредактировал murmur - Dec 12 2016, 12:40
Эскизы прикрепленных изображений