UP
This commit is contained in:
@@ -1,13 +1,17 @@
|
||||
#include <stdio.h>
|
||||
#include "page.h"
|
||||
#include "list.h"
|
||||
#include "bmp.h"
|
||||
|
||||
uint8_t pageid = 0, cur = 1, cnt = 0, item_h = 12;
|
||||
|
||||
uint8_t pageid = 0, cur = 1, cnt = 0, item_h = 16, item_w = 0;
|
||||
uint8_t cnt_f=1;
|
||||
static List_t list;
|
||||
Page_L_t mainp = {0, 3, 0, 1, 12, mainpage};
|
||||
Page_L_t ap = {1, 2, 0, 1, 12, pageA};
|
||||
Page_L_t bp = {2, 2, 0, 1, 12, pageB};
|
||||
Page_L_t cp = {3, 2, 0, 1, 12, pageC};
|
||||
Page_L_t mainp = {0, 0, 0, 0, 1, 16, 16, mainpage};
|
||||
Page_L_t ap = {1, 2, 1, 0, 1, 12, 36, pageA};
|
||||
Page_L_t bp = {2, 2, 1, 0, 2, 12, 36, pageB};
|
||||
Page_L_t cp = {3, 2, 1, 0, 3, 12, 36, pageC};
|
||||
Page_L_t ip = {4, 0, 0, 0, 4, 0, 0, pageImg};
|
||||
|
||||
|
||||
void pageinit() {
|
||||
list_init(&list);
|
||||
@@ -15,6 +19,7 @@ void pageinit() {
|
||||
list_insert(&list, &ap);
|
||||
list_insert(&list, &bp);
|
||||
list_insert(&list, &cp);
|
||||
list_insert(&list, &ip);
|
||||
}
|
||||
|
||||
int compare_page(const void *s1, const void *s2) {
|
||||
@@ -32,17 +37,28 @@ Page_L_t pagesearch(uint8_t id) {
|
||||
|
||||
void pagecur(OLED_T *dev) {
|
||||
if (cnt % 2) {
|
||||
OLED_ShowString(dev, 26, cur * item_h, ">", item_h);
|
||||
if (pagesearch(pageid).curmin != pagesearch(pageid).curmax&&pagesearch(pageid).item_h != 0) {
|
||||
OLED_ShowString(dev, item_w - item_h, cur * item_h, ">", item_h);
|
||||
}
|
||||
}
|
||||
if(cnt_f){
|
||||
cnt++;
|
||||
}
|
||||
cnt++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void mainpage(OLED_T *dev) {
|
||||
OLED_CLS(dev);
|
||||
OLED_ShowString(dev, 32, 0, "Main Page", 12);
|
||||
OLED_ShowString(dev, 36, 12, "1.PageA", 12);
|
||||
OLED_ShowString(dev, 36, 24, "2.PageB", 12);
|
||||
OLED_ShowString(dev, 36, 36, "3.PageC", 12);
|
||||
uint8_t fsbuf[16] = {0};
|
||||
sprintf(fsbuf,"%c%c%c%c%c%c%c%c",0x4F, 0xE1 ,0x60, 0x6F,0x66, 0x3E,0x79, 0x3A);
|
||||
OLED_ShowCHString(dev, 32, 0 * item_h, fsbuf);
|
||||
sprintf(fsbuf,"%c%c%c%c%c%c%c%c%c",0x59, 0xD3 ,0x54, 0x0D,':',0x6B, 0x66,0x65, 0xED);
|
||||
OLED_ShowCHString(dev, 12, 1 * item_h, fsbuf);
|
||||
sprintf(fsbuf,"%c%c%c%c:ZB211",0x73, 0xED ,0x7E, 0xA7);
|
||||
OLED_ShowCHString(dev, 12, 2 * item_h, fsbuf);
|
||||
sprintf(fsbuf,"%c%c%c%c:%c%c%c%c%c%c%c%c",0x4E, 0x13 ,0x4E, 0x1A ,0x75, 0x35,0x5B, 0x50,0x4F, 0xE1 ,0x60, 0x6F);
|
||||
OLED_ShowCHString(dev, 12, 3 * item_h, fsbuf);
|
||||
pagecur(dev);
|
||||
}
|
||||
|
||||
@@ -68,4 +84,31 @@ void pageC(OLED_T *dev) {
|
||||
OLED_ShowString(dev, 36, 12, "1.contx", 12);
|
||||
OLED_ShowString(dev, 36, 24, " back", 12);
|
||||
pagecur(dev);
|
||||
}
|
||||
|
||||
void pageImg(OLED_T *dev) {
|
||||
OLED_CLS(dev);
|
||||
switch (cnt % 6) {
|
||||
case 0:
|
||||
OLED_ShowPic(dev, 0, 0, 64, 64, BMP1);
|
||||
break;
|
||||
case 1:
|
||||
OLED_ShowPic(dev, 0, 0, 64, 64, BMP2);
|
||||
break;
|
||||
case 2:
|
||||
OLED_ShowPic(dev, 0, 0, 64, 64, BMP3);
|
||||
break;
|
||||
case 3:
|
||||
OLED_ShowPic(dev, 0, 0, 64, 64, BMP4);
|
||||
break;
|
||||
case 4:
|
||||
OLED_ShowPic(dev, 0, 0, 64, 64, BMP5);
|
||||
break;
|
||||
case 5:
|
||||
OLED_ShowPic(dev, 0, 0, 64, 64, BMP6);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
pagecur(dev);
|
||||
}
|
@@ -5,14 +5,16 @@
|
||||
|
||||
typedef void (*Page_t)(OLED_T *dev);
|
||||
|
||||
extern uint8_t pageid, cur, cnt, item_h;
|
||||
|
||||
extern uint8_t pageid, cur, cnt, item_h, item_w;
|
||||
extern uint8_t cnt_f;
|
||||
typedef struct Page_L {
|
||||
uint8_t id;
|
||||
uint8_t curmax: 3;
|
||||
uint8_t back;
|
||||
uint8_t curmin: 3;
|
||||
uint8_t item_h: 4;
|
||||
uint8_t id: 4;
|
||||
uint8_t curmax: 4;
|
||||
uint8_t curmin: 4;
|
||||
uint8_t back: 4;
|
||||
uint8_t next: 4;
|
||||
uint8_t item_h:6;
|
||||
uint8_t item_w: 7;
|
||||
Page_t page;
|
||||
} Page_L_t;
|
||||
|
||||
@@ -27,5 +29,6 @@ void pageA(OLED_T *dev);
|
||||
void pageB(OLED_T *dev);
|
||||
|
||||
void pageC(OLED_T *dev);
|
||||
void pageImg(OLED_T *dev);
|
||||
|
||||
#endif //HW_LIB_PAGE_H
|
||||
|
@@ -8,7 +8,6 @@
|
||||
#include "key.h"
|
||||
#include "sim_key.h"
|
||||
#include "page.h"
|
||||
#include "bmp.h"
|
||||
|
||||
uint8_t Cmd(uint8_t *data, size_t l) {
|
||||
// Buf_Print("Cmd", data, l, 16);
|
||||
@@ -30,13 +29,13 @@ void Key_Call_E(Key_t *key) {
|
||||
switch (key->event) {
|
||||
case KEY_PRESS_DOWN:
|
||||
// LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "PressTheEvent");
|
||||
break;// 按下事件
|
||||
break;// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||
case KEY_PRESS_UP:
|
||||
// LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "BounceIncident");
|
||||
break;// 弹起事件
|
||||
break;// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||
case KEY_PRESS_REPEAT:
|
||||
LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "RepeatThePressEvent");
|
||||
break;// 重复按下事件
|
||||
break;// <EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||
case KEY_SINGLE_CLICK:
|
||||
LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "ClickEvent");
|
||||
if (key->key_id == SIM_KEY_UP)cur--;
|
||||
@@ -46,6 +45,7 @@ void Key_Call_E(Key_t *key) {
|
||||
if (key->key_id == SIM_KEY_LEFT)pageid--;
|
||||
if (key->key_id == SIM_KEY_RIGHT)pageid++;
|
||||
if (key->key_id == SIM_KEY_RESET)pageid = pagesearch(pageid).back;
|
||||
if (key->key_id == SIM_KEY_SET)pageid = pagesearch(pageid).next;
|
||||
if (key->key_id == SIM_KEY_ENABLE) {
|
||||
switch (pageid) {
|
||||
case 0:
|
||||
@@ -56,18 +56,22 @@ void Key_Call_E(Key_t *key) {
|
||||
case 3:
|
||||
if (cur == 2)pageid = 0;
|
||||
break;
|
||||
case 4:
|
||||
if(cnt_f==1)cnt_f=0;
|
||||
else cnt_f=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;// 单击事件
|
||||
break;// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||
case KEY_DOUBLE_CLICK:
|
||||
LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "DoubleClickTheEvent");
|
||||
break;// 双击事件
|
||||
break;// ˫<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||
case KEY_LONG_PRESS_START:
|
||||
// LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "LongPressToStartTheEvent");
|
||||
break;// 长按开始事件
|
||||
break;// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>¼<EFBFBD>
|
||||
case KEY_LONG_PRESS_HOLD:
|
||||
LOGT("KEY", "ID:%d EVENT:%s", key->key_id, "LongPressToHoldTheEvent");
|
||||
break;// 长按保持事件
|
||||
break;// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +94,7 @@ void Get_Key(void *pVoid) {
|
||||
key_attach(&k7, KEY_ALL_EVENT, Key_Call_E, true);
|
||||
|
||||
while (1) {
|
||||
// 每5ms调用一次key_ticks函数
|
||||
// ÿ5ms<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>key_ticks<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
key_ticks();
|
||||
Sleep(5);
|
||||
}
|
||||
@@ -115,28 +119,29 @@ void Test_OLED() {
|
||||
OLED_Init(&oled);
|
||||
OLED_CLS(&oled);
|
||||
OLED_DrawRect(&oled, 0, 0, 127, 63);
|
||||
|
||||
// char buf[30] = {0x5B, 0x57};
|
||||
char buf[30] = {0x5B, 0x57, 0x5E, 0x93, 0x75, 0x1F, 0x62, 0x10, 0x6D, 0x4B, 0x8B, 0xD5};
|
||||
uint8_t sbuf[30] = {0};
|
||||
sprintf(sbuf, "%sC\0", buf);
|
||||
// };//
|
||||
// char buf[30] = {0x60,0x6F,0x59, 0xD3,0x54, 0x0D,0x6B, 0x66,0x65, 0xED,0x73, 0xED,0x7E, 0xA7,0x4F, 0xE1,0x60, 0x6F,0x66, 0x3E,0x79, 0x3A,0x56, 0xFE,0x72, 0x47,0x89, 0xC6,0x98, 0x91,0x4E, 0x13,0x4E, 0x1A,0x75, 0x35,0x5B, 0x50,};
|
||||
//
|
||||
// uint8_t sbuf[30] = {0};
|
||||
// sprintf(sbuf, "%sC\0", buf);
|
||||
// OLED_ShowCHString(&oled, 1, 16, sbuf);
|
||||
|
||||
OLED_Refresh(&oled);
|
||||
|
||||
// Sleep(3000);
|
||||
Sleep(3000);
|
||||
|
||||
extern lv_font_t myFont;
|
||||
// OLED_DisplayString(&oled, &myFont, "你好Hello", 2, 0);
|
||||
// extern lv_font_t myFont;
|
||||
// OLED_DisplayString(&oled, &myFont, "<EFBFBD>༶", 2, 1);
|
||||
|
||||
OLED_ShowPic(&oled, 0, 0, 64, 64, BMP1);
|
||||
// OLED_ShowPic(&oled, 0, 0, 64, 64, BMP1);
|
||||
OLED_Refresh(&oled);
|
||||
_beginthread(Get_Key, 0, NULL);
|
||||
pageinit();
|
||||
while (1) {
|
||||
if (pageid > 3)pageid = 0;
|
||||
if (pageid > 4)pageid = 0;
|
||||
item_h = pagesearch(pageid).item_h;
|
||||
// pagesearch(pageid).page(&oled);
|
||||
item_w = pagesearch(pageid).item_w;
|
||||
pagesearch(pageid).page(&oled);
|
||||
// sprintf(buf, "DATA:%d", s);
|
||||
// OLED_ShowString(&oled, 2, 51, buf, 12);
|
||||
OLED_Refresh(&oled);
|
||||
|
Reference in New Issue
Block a user