Browse Source

完成显示基本组件

3lead_uart_test_ok_version
zhaohe 1 year ago
parent
commit
a25a16ca56
  1. 20
      app/src/basic/ssd1306/driver_ssd1306_basic.c
  2. 8
      app/src/basic/ssd1306/wave_drawer.c
  3. 14
      app/src/one_conduction/display_manager.c
  4. 37
      app/src/one_conduction/font.h
  5. BIN
      res/heartPulse.bmp

20
app/src/basic/ssd1306/driver_ssd1306_basic.c

@ -531,7 +531,7 @@ uint8_t ssd1306_basic_draw_one_chr(uint8_t xs, uint8_t ys, char *str, FontLibrar
if (is_ascii) { if (is_ascii) {
charsize = 1; charsize = 1;
} else { } else {
charsize = 3; // utf8 ?3?
charsize = 3; // utf8 ??3??
} }
FontLibrary_findchar(frontlib, str, &frontbuf); FontLibrary_findchar(frontlib, str, &frontbuf);
@ -618,7 +618,7 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
int batteryInterBodyWidth = batteryBodyWidth - blank_width * 2 - border_width * 2; int batteryInterBodyWidth = batteryBodyWidth - blank_width * 2 - border_width * 2;
int batteryInterBodyHigh = batteryBodyHigh - border_width * 2 - blank_width * 2; int batteryInterBodyHigh = batteryBodyHigh - border_width * 2 - blank_width * 2;
/** /**
* @brief ?
* @brief ??
*/ */
for (int yoff = 0; yoff < batteryHeaderHigh; yoff++) { for (int yoff = 0; yoff < batteryHeaderHigh; yoff++) {
for (int xoff = 0; xoff < batteryBodyWidth; xoff++) { for (int xoff = 0; xoff < batteryBodyWidth; xoff++) {
@ -634,7 +634,7 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
ys += batteryHeaderHigh; ys += batteryHeaderHigh;
/** /**
* @brief
* @brief 沿
*/ */
for (int yoff = 0; yoff < border_width; yoff++) { for (int yoff = 0; yoff < border_width; yoff++) {
for (int xoff = 0; xoff < batteryBodyWidth; xoff++) { for (int xoff = 0; xoff < batteryBodyWidth; xoff++) {
@ -643,7 +643,7 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
} }
ys += border_width; ys += border_width;
/** /**
* @brief
* @brief
*/ */
for (int yoff = 0; yoff < blank_width; yoff++) { for (int yoff = 0; yoff < blank_width; yoff++) {
for (int xoff = 0; xoff < batteryBodyWidth; xoff++) { for (int xoff = 0; xoff < batteryBodyWidth; xoff++) {
@ -660,7 +660,7 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
ys += blank_width; ys += blank_width;
/** /**
* @brief ?
* @brief ??
*/ */
for (int yoff = 0; yoff < batteryInterBodyHigh; yoff++) { for (int yoff = 0; yoff < batteryInterBodyHigh; yoff++) {
for (int xoff = 0; xoff < batteryBodyWidth; xoff++) { for (int xoff = 0; xoff < batteryBodyWidth; xoff++) {
@ -688,7 +688,7 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
ys += batteryInterBodyHigh; ys += batteryInterBodyHigh;
/** /**
* @brief
* @brief
*/ */
for (int yoff = 0; yoff < blank_width; yoff++) { for (int yoff = 0; yoff < blank_width; yoff++) {
for (int xoff = 0; xoff < batteryBodyWidth; xoff++) { for (int xoff = 0; xoff < batteryBodyWidth; xoff++) {
@ -704,7 +704,7 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
} }
ys += blank_width; ys += blank_width;
/** /**
* @brief
* @brief 沿
*/ */
for (int yoff = 0; yoff < border_width; yoff++) { for (int yoff = 0; yoff < border_width; yoff++) {
for (int xoff = 0; xoff < batteryBodyWidth; xoff++) { for (int xoff = 0; xoff < batteryBodyWidth; xoff++) {
@ -725,7 +725,7 @@ uint8_t ssd1306_basic_draw_progress(uint8_t xs, uint8_t ys, uint16_t width, uint
*/ */
/** /**
* @brief 线
* @brief
*/ */
for (uint16_t i = 0; i < width; i++) { for (uint16_t i = 0; i < width; i++) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys, 1); ssd1306_gram_write_point(&gs_handle, xs + i, ys, 1);
@ -733,7 +733,7 @@ uint8_t ssd1306_basic_draw_progress(uint8_t xs, uint8_t ys, uint16_t width, uint
ys += 1; ys += 1;
/** /**
* @brief
* @brief
*/ */
uint16_t progress_width = width * progress / 100.0; uint16_t progress_width = width * progress / 100.0;
uint16_t markpos_off = width * markpos / 100.0; uint16_t markpos_off = width * markpos / 100.0;
@ -753,7 +753,7 @@ uint8_t ssd1306_basic_draw_progress(uint8_t xs, uint8_t ys, uint16_t width, uint
ys += high - 2; ys += high - 2;
/** /**
* @brief 线
* @brief
*/ */
for (uint16_t i = 0; i < width; i++) { for (uint16_t i = 0; i < width; i++) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys, 1); ssd1306_gram_write_point(&gs_handle, xs + i, ys, 1);

8
app/src/basic/ssd1306/wave_drawer.c

@ -15,11 +15,11 @@ void wave_drawer_init(wave_drawer_t *dw, uint8_t xs, uint8_t ys, uint16_t width,
dw->ybottom_border = ys + high; dw->ybottom_border = ys + high;
dw->ytop = ys + 1; dw->ytop = ys + 1;
dw->ybottom = ys + high - 1;
dw->ybottom = ys + high - 2;
dw->xleft = xs + 1; dw->xleft = xs + 1;
dw->xright = xs + width - 1; dw->xright = xs + width - 1;
dw->high = high - 1;
dw->high = high - 2;
dw->width = width - 1; dw->width = width - 1;
dw->is_first_point = true; dw->is_first_point = true;
} }
@ -28,7 +28,7 @@ void wave_drawer_draw_border(wave_drawer_t *dw) {
for (uint16_t x = dw->xleft_border; x <= dw->xright_border; x++) { for (uint16_t x = dw->xleft_border; x <= dw->xright_border; x++) {
for (uint16_t y = dw->ytop_border; y <= dw->ybottom_border; y++) { for (uint16_t y = dw->ytop_border; y <= dw->ybottom_border; y++) {
if (x == dw->xleft_border || x == dw->xright_border || y == dw->ytop_border || y == dw->ybottom_border) { if (x == dw->xleft_border || x == dw->xright_border || y == dw->ytop_border || y == dw->ybottom_border) {
// ssd1306_gram_write_point(ssd1306_handler(), x, y, 1);
ssd1306_gram_write_point(ssd1306_handler(), x, y, 1);
} else { } else {
ssd1306_gram_write_point(ssd1306_handler(), x, y, 0); ssd1306_gram_write_point(ssd1306_handler(), x, y, 0);
} }
@ -48,7 +48,7 @@ void wave_drawer_draw_next_point(wave_drawer_t *dw, uint8_t y) {
* |--------------- * |---------------
*/ */
uint16_t yreal = y / 100.0 * (dw->high - 1);
uint16_t yreal = y / 100.0 * (dw->high - 4);
uint16_t ypos = dw->ybottom - yreal; uint16_t ypos = dw->ybottom - yreal;
uint16_t xpos = dw->xleft + dw->pointoffset; uint16_t xpos = dw->xleft + dw->pointoffset;

14
app/src/one_conduction/display_manager.c

@ -129,10 +129,20 @@ void dsp_mgr_change_to_preparePage() {
static wave_drawer_t wave_drawer; static wave_drawer_t wave_drawer;
void dsp_mgr_change_to_sampling() { // void dsp_mgr_change_to_sampling() { //
// ssd1306_basic_draw_progress(5, 5, 100, 8, 50, 30);
wave_drawer_init(&wave_drawer, 1, 1, 100, 40);
wave_drawer_init(&wave_drawer, 1, 1, 120, 40);
wave_drawer_draw_border(&wave_drawer); wave_drawer_draw_border(&wave_drawer);
uint8_t x = 0;
uint8_t y = 0;
uint8_t xchange, ychange;
ssd1306_basic_draw_progress(1, 47, 80, 8, 50, 30);
ssd1306_basic_draw_str(82, 43, &xchange, &ychange, "<>123", &font_asicc16x8_lib);
ssd1306_basic_gram_update(); ssd1306_basic_gram_update();
} }
void dsp_mgr_draw_point(int16_t y) { void dsp_mgr_draw_point(int16_t y) {

37
app/src/one_conduction/font.h

@ -210,4 +210,39 @@ static FontLibrary_t font24x24_zh_lib = {
.isAscii = false, .isAscii = false,
.widthPixel = 24, .widthPixel = 24,
.heightPixel = 24, .heightPixel = 24,
};
};
#if 0
// const unsigned char gImage_heart_16x16[] = {
// /* 0X22,0X01,0X10,0X00,0X10,0X00, */
// 0X00, 0XF8, 0XFC, 0XFE, 0XFE, 0XFE, 0XFE, 0XFC, 0XFC, 0XFE, 0XFE, 0XFE, 0XFE, 0XFC, 0XF8, 0X00, 0X00, 0X00, 0X03, 0X07, 0X0F, 0X1F, 0X3F, 0X7F, 0X7F, 0X3F, 0X1F, 0X0F, 0X07, 0X03, 0X00, 0X00,
// };
#endif
const unsigned char font_asicc_code_16x8[] = {
0x00, 0xF0, 0x18, 0x08, 0x08, 0x18, 0xE0, 0x00, 0x00, 0x0F, 0x10, 0x20, 0x30, 0x18, 0x0F, 0x00, /*"0",0*/
0x00, 0x60, 0x20, 0xF0, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, /*"1",1*/
0x00, 0x30, 0x18, 0x08, 0x08, 0xD8, 0x70, 0x00, 0x00, 0x30, 0x38, 0x34, 0x33, 0x31, 0x30, 0x00, /*"2",2*/
0x00, 0x30, 0x18, 0x08, 0x88, 0xD8, 0x70, 0x00, 0x00, 0x18, 0x10, 0x20, 0x21, 0x13, 0x0E, 0x00, /*"3",3*/
0x00, 0x00, 0x80, 0x60, 0x30, 0xF8, 0x00, 0x00, 0x04, 0x07, 0x05, 0x04, 0x04, 0x3F, 0x04, 0x04, /*"4",4*/
0x00, 0xF0, 0x98, 0xC8, 0x88, 0x88, 0x08, 0x00, 0x08, 0x19, 0x30, 0x20, 0x30, 0x19, 0x0F, 0x00, /*"5",5*/
0x00, 0x80, 0xC0, 0xF0, 0x98, 0x80, 0x00, 0x00, 0x00, 0x1F, 0x31, 0x20, 0x20, 0x30, 0x1F, 0x06, /*"6",6*/
0x00, 0x08, 0x08, 0x08, 0x88, 0xE8, 0x38, 0x00, 0x00, 0x00, 0x30, 0x3E, 0x03, 0x00, 0x00, 0x00, /*"7",7*/
0x00, 0xF0, 0x88, 0x88, 0x88, 0xD8, 0x70, 0x00, 0x04, 0x1F, 0x31, 0x21, 0x21, 0x31, 0x1E, 0x00, /*"8",8*/
0xE0, 0xF0, 0x08, 0x08, 0x08, 0x98, 0xF0, 0x00, 0x00, 0x01, 0x23, 0x3A, 0x0F, 0x03, 0x00, 0x00, /*"9",9*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, /*"-",10*/
0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x11, 0x00, 0x00, 0x00, /*":",10*/
0X00, 0XF8, 0XFC, 0XFE, 0XFE, 0XFE, 0XFE, 0XFC, 0X00, 0X00, 0X03, 0X07, 0X0F, 0X1F, 0X3F, 0X7F, /*<?左半*/
0XFC, 0XFE, 0XFE, 0XFE, 0XFE, 0XFC, 0XF8, 0X00, 0X7F, 0X3F, 0X1F, 0X0F, 0X07, 0X03, 0X00, 0X00, /*>?右半*/
};
static FontLibrary_t font_asicc16x8_lib = {
.font = font_asicc_code_16x8,
.fontIndex = "0123456789-:<>", // <>
.fontIndexLen = 14,
.fontCode = kgbk,
.isAscii = true,
.widthPixel = 8,
.heightPixel = 16,
};

BIN
res/heartPulse.bmp

Loading…
Cancel
Save