Reflector писал(а):GFX писал(а):линию я рисую нормально не через точку, а именно прописав все проверки и обращения. Но направление не меняю...
Допустим есть типичная вытянутая по вертикали линия (0, 0) - (5, 50). Тогда если инкремент адреса идет по горизонтали, то фактически придется в 50-ти случаях менять координату Y и 45 раз менять X после вывода каждой точки, т.е., грубо говоря, получается 4+4+2+2 байт на точку(плюс/минус несколько байт для разных индикаторов). Если инкремент идет по вертикали, то нужно 5 раз поменять X и все, а это 45*2 + 5*(4+2+2) или в 4.6 раза меньше байт для всей линии.
А шрифты че они шрифты выводятся редко выводятся быстро на фпс в данном случае не влияют.
Тут текста мало, в другой раз будет много, проще написать функцию быстрого вывода текста на все случаи, тем более это не намного сложнее.
Да я согласен и не против. А можно вопрос, вы уже делали эти функции или пока в теории?) Просто зачем изобретать велосипед, когда один приличный форумчанин может поделиться такой библиотекой?

А то мы сейчас 3 разные версии сделаем, наизобретаем велосипедов.
Добавлено after 24 minutes 47 seconds:
Fusion писал(а):
Экран перерисовываю также, только не жду готовности SPI:
Спойлер
Код: Выделить всё
// while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SPI_SendData8(SPI1, color);
// while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SPI_SendData8(SPI1, color);
У СТМ двойной буфер на отправку, поэтому можно писать 2 байта сразу.
Вот хохма, SPI работает в 8ми битном режиме быстрее!
Было
while (!SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE));
SPI_I2S_SendData16(SPI1, color);
итого 22 ФПС
Причем без проверки флага на экране каша, он с ума сходит.
Поменял на
SPI_SendData8(SPI1, (color>>8));
SPI_SendData8(SPI1, color);
Итого работает без проверки флага и 28 ФПС, т.е. ДМА не нужно, на филл скрине, не жалко пусть ДМА, но на точках то так быстрее. Вот и думай, что логично вроде 16 битный режим юзать, ан нет. Блин все тестировать нужно и проверять, дожили.
Добавлено after 42 minutes 45 seconds:
Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Ан нет, все-таки справедливость восторжествовала. Если писать не кучей байт, а дергать DC все время, т.е. рисовать точкой, то в 16 битном режиме быстрее выходит, постоянно без проверки статуса 16 битный не работает, а при проверке флага теряется скорость. Т.е. в 8ми битном режиме подряд писать быстрее выходит потому что он работает без проверки статуса, его можно на заливку квадратных областей использовать, или рисовать быструю линию только по горизонтали которая или вертикали, а точки в 16 бинтом режиме рисовать.