Введение
Как то потребовалось мне сделать градиентную шкалу на моем TFT экранчике, чтобы красиво и ни как у остальных. Поиски в тырнэтах не дали вразумительного результата, кроме как использовать готовый массив, и то в кодировке RGB888. Но я наткнулся на интересные картинки с вики, на которых изображен градиент и графики для каждого цвета RGB (ниже будет ссылка на архив с самой библиотекой и этими картинками).
Описание библиотеки
Библиотека рассчитана на работу с кодировкой цветов 565, который широко используется в TFT экранчиках. В библиотеки используются только стандартные библиотеки (масло масляное):
Код: Выделить всё
#include "stdlib.h"
#include "stdint.h"
#include "math.h"
Сначала покажу результат работы библиотеки: В .h файле объявлены следующие функции
Код: Выделить всё
uint16_t grad_red_yellow_green(uint16_t val, uint16_t val_max, uint16_t val_ntsc); //grad 1
uint16_t grad_black_blue_green_red_white(uint16_t val, uint16_t val_max, uint16_t val_ntsc); //grad 2
uint16_t grad_rainbow(uint16_t val, uint16_t val_max, uint16_t val_ntsc); //grad 3
uint16_t grad_white_gray_black(uint16_t val, uint16_t val_max); //grad 4
uint16_t grad_lava(uint16_t val, uint16_t val_max); //grad 5 & 6
uint16_t grad_my_castom(uint16_t val, uint16_t val_max);
uint16_t grad_black_purple_red_yellow(uint16_t val, uint16_t val_max); //grad 7
Логика работы с этими функциями следующая: например вам нужно построить/отобразить значение с АЦП в виде шкалы, в этом случае значение получаемое с АЦП это переменная val, максимальное значение которое можно получить с АЦП это переменная val_max.
Так же есть переменная ntsc. Я лично понял что это прозрачность цвета, исходя из своих опытов. К примеру возьмем первый градиент(ниже картинка из вики): На фотке в самом начале этому градиенту соответствует первая и вторая линия. Только в первом случае параметр ntsc рассчитывается согласно графикам, а во втором случае значение этой переменной приравнено к единице, то есть на всем диапазоне цвет отображается "на полную яркость". Опять таки если вернуться к фотографии в начале, то первая и вторая, третья и четвертая, пятая и шестая это градиенты 1, 2 и 3 соответственно, только в четных переменная ntsc приравнена к единице, а в нечетных рассчитывается.
Вообщем поиграться можно, и сделать свою "уникальную" шкалу. Вообщем это весь процесс работы с функциями библиотеки (пока что).
Спасибо за внимание)
P.S. Интерфейс вашего устройства должен быть не только функциональным, но и эстетически прекрасен и приятен взгляду, буду рад если библиотека кому либо из вас поможет.
Ссылка на библиотеку:https://yadi.sk/d/R7fDgL89BNR-ZQ?w=1