From 2a5c81891abccf4a625d6fac8505c8558f774b80 Mon Sep 17 00:00:00 2001 From: JiXieShi Date: Sat, 22 Jun 2024 19:32:13 +0800 Subject: [PATCH] =?UTF-8?q?UP=20=E6=A8=A1=E6=8B=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo/oled/test.c | 2 +- sim/oled/oled.cpp | 6 +++--- sim/oled/sim_oled.h | 22 ++++++++++++++++++---- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/demo/oled/test.c b/demo/oled/test.c index e108cd0..0c6c616 100644 --- a/demo/oled/test.c +++ b/demo/oled/test.c @@ -23,7 +23,7 @@ void Refresh_Call(OLED_T *dev) { uint8_t oledbuf[8][128] = {0}; void Test_OLED() { - SIM_OLED_INIT(128, 64, 0xFFFFFF, 0x0, 10, 1); + SIM_OLED_INIT(128, 64, BLUE, 0x0, 5, 1); OLED_T oled = { .height=64, .width=128, diff --git a/sim/oled/oled.cpp b/sim/oled/oled.cpp index a06fe73..75aa06c 100644 --- a/sim/oled/oled.cpp +++ b/sim/oled/oled.cpp @@ -6,6 +6,8 @@ static uint32_t pixelColor, backgroundColor; static int scaleFactor, w, h; uint8_t border; +#define GET_BIT(x, bit) ((x & (1 << bit)) >> bit) + void SIM_OLED_INIT(int width, int height, uint32_t pixcolor, uint32_t backcolor, int scale, uint8_t b) { w = width * scale; h = height * scale; @@ -34,7 +36,6 @@ void drawOledPixel(int oledX, int oledY) { else solidrectangle(startX, startY, startX + scaleFactor, startY + scaleFactor); } -#define GET_BIT(x, bit) ((x & (1 << bit)) >> bit) void SIM_OLED_DrawFromBuffer(uint8_t *buf, uint8_t width, uint8_t height) { cleardevice(); @@ -43,8 +44,7 @@ void SIM_OLED_DrawFromBuffer(uint8_t *buf, uint8_t width, uint8_t height) { uint8_t byteData = buf[y * width + x]; for (int i = 0; i < 8; i++) { uint8_t bit = GET_BIT(byteData, i); - if (bit) - drawOledPixel(x, y * 8 + (i)); + if (bit)drawOledPixel(x, y * 8 + (i)); } } } diff --git a/sim/oled/sim_oled.h b/sim/oled/sim_oled.h index 1cfeda1..1e97585 100644 --- a/sim/oled/sim_oled.h +++ b/sim/oled/sim_oled.h @@ -6,8 +6,22 @@ extern "C" { #include "stdint.h" -#define WIDTH 1280 -#define HEIGHT 640 +#define BLACK 0 +#define BLUE 0xAA0000 +#define GREEN 0x00AA00 +#define CYAN 0xAAAA00 +#define RED 0x0000AA +#define MAGENTA 0xAA00AA +#define BROWN 0x0055AA +#define LIGHTGRAY 0xAAAAAA +#define DARKGRAY 0x555555 +#define LIGHTBLUE 0xFF5555 +#define LIGHTGREEN 0x55FF55 +#define LIGHTCYAN 0xFFFF55 +#define LIGHTRED 0x5555FF +#define LIGHTMAGENTA 0xFF55FF +#define YELLOW 0x55FFFF +#define WHITE 0xFFFFFF /** * @brief 初始化模拟 OLED 显示 @@ -16,11 +30,11 @@ extern "C" { * @param pixcolor: [输入] 像素颜色 * @param backcolor: [输入] 背景颜色 * @param scale: [输入] 显示缩放比例 - * @param b: [输入] 是否显示边框 + * @param border: [输入] 是否显示边框 * @return void * @example SIM_OLED_INIT(128, 64, 0xFFFF00, 0x000000, 10, 1); **/ -void SIM_OLED_INIT(int width, int height, uint32_t pixcolor, uint32_t backcolor, int scale, uint8_t b); +void SIM_OLED_INIT(int width, int height, uint32_t pixcolor, uint32_t backcolor, int scale, uint8_t border); /** * @brief 开始模拟 OLED 显示