X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Farm.git;a=blobdiff_plain;f=betty%2Fdisplay.h;h=a4919c56c3e76fcea0fcf729445b23dfac749962;hp=0706af3375078a2843ba4f41ed8495dc14f9a94f;hb=202c5cb4442b81aa5d0f7389b6dca62b2c121ac1;hpb=00632c1df2040d4ee30ff8a9420489f7adfe9963 diff --git a/betty/display.h b/betty/display.h index 0706af3..a4919c5 100644 --- a/betty/display.h +++ b/betty/display.h @@ -12,10 +12,10 @@ #include "types.h" /* defines */ -#define DISPLY_BANK1 0x81000000 +#define DISPLAY_BANK1 0x81000000 -#define DISPLAY_CMD (*((volatile u8 *)DISPLY_BANK1)) -#define DISPLAY_DATA (*((volatile u8 *)DISPLY_BANK1+1)) +#define DISPLAY_CMD (*((volatile u8 *)DISPLAY_BANK1)) +#define DISPLAY_DATA (*((volatile u8 *)DISPLAY_BANK1+1)) #define DISPLAY_DIMX 128 #define DISPLAY_DIMY 160 @@ -24,7 +24,7 @@ #define DISPLAY_RAM_CONTENT (DISPLAY_PAGE_MAX*DISPLAY_COL_MAX*2) /* display cmds */ -#define DISPLAY_SET_C_ADDR(c) DISPLAY_CMD=(0x00|((c)&0x0f)); \ +#define DISPLAY_SET_COL_ADDR(c) DISPLAY_CMD=(0x00|((c)&0x0f)); \ DISPLAY_CMD=(0x10|(((c)&0x70)>>4)) #define DISPLAY_SET_MASTER DISPLAY_CMD=0x18 #define DISPLAY_SET_SLAVE DISPLAY_CMD=0x19 @@ -42,13 +42,13 @@ #define DISPLAY_SET_NINV(n) DISPLAY_CMD=0x4c; \ DISPLAY_CMD=(n) #define DISPLAY_SET_BIAS(b) DISPLAY_CMD=(0x50|((b)&0x07)) -#define DISPLAY_SET_UW_CORNER_X(x) DISPLAY_CMD=0x60; \ - DISPLAY_CMD=((x)&0x7f) -#define DISPLAY_SET_UW_CORNER_Y(y) DISPLAY_CMD=0x61; \ +#define DISPLAY_SET_UW_CORNER(x,y) DISPLAY_CMD=0x60; \ + DISPLAY_CMD=((x)&0x7f); \ + DISPLAY_CMD=0x61; \ DISPLAY_CMD=(y) -#define DISPLAY_SET_LW_CORNER_X(x) DISPLAY_CMD=0x62; \ - DISPLAY_CMD=((x)&0x7f) -#define DISPLAY_SET_LW_CORNER_Y(y) DISPLAY_CMD=0x63; \ +#define DISPLAY_SET_LW_CORNER(x,y) DISPLAY_CMD=0x62; \ + DISPLAY_CMD=((x)&0x7f); \ + DISPLAY_CMD=0x63; \ DISPLAY_CMD=(y) #define DISPLAY_SET_CONV_FACTOR(c) DISPLAY_CMD=(0x64|((c)&0x03)) #define DISPLAY_SET_CONTRAST(c) DISPLAY_CMD=0x81; \ @@ -65,11 +65,12 @@ DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \ DISPLAY_CMD=0x8d; \ DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f)) -#define DISPLAY_SET_BLACK(a,b,c,d) DISPLAY_CMD=0x88; \ +#define DISPLAY_SET_BLACK(a,b,c,d) DISPLAY_CMD=0x8e; \ DISPLAY_CMD=(((b)&0x0f)<<4|((a)&0x0f)); \ - DISPLAY_CMD=0x89; \ + DISPLAY_CMD=0x8f; \ DISPLAY_CMD=(((d)&0x0f)<<4|((c)&0x0f)) -#define DISPLAY_SET_PWM_FRC(p,f) DISPLAY_CMD=(0x90|(((f&0x01)<<2)|p&0x03)) +#define DISPLAY_SET_PWM_FRC(p,f) DISPLAY_CMD=(0x90| \ + (((f&0x01)<<2)|(p&0x03))) #define DISPLAY_SET_SEGMENT_REMAP_00H DISPLAY_CMD=0xa0 #define DISPLAY_SET_SEGMENT_REMAP_7fH DISPLAY_CMD=0xa1 #define DISPLAY_RAM_CONTENTS_ON DISPLAY_CMD=0xa4 @@ -93,7 +94,26 @@ DISPLAY_CMD=(c) #define DISPLAY_EXTENDED_FEATURES DISPLAY_CMD=0xf0 +/* experimental cmds */ +#define DISPLAY_SET_READ_MODIFY_WRITE DISPLAY_CMD=0xe0; +#define DISPLAY_UNSET_READ_MODIFY_WRITE DISPLAY_CMD=0xee; + +/* display api specific defines */ +#define DISPLAY_FILL_W 0x00 +#define DISPLAY_FILL_LG 0x01 +#define DISPLAY_FILL_DG 0x02 +#define DISPLAY_FILL_B 0x03 + + /* function prototypes */ +void display_fill_screen(u8 fill); +void display_clear_screen(void); +void display_init(void); +void display_logo(u8 *src); +void display_rectangle_page(u8 x,u8 p,u8 w,u8 h,u8 fill,u8 alpha); +void display_draw_rectangle(u8 x,u8 y,u8 w,u8 h,u8 fill,u8 alpha); +void display_font_page(u8 x,u8 page,u8 *font,u8 fill); +void display_draw_font(u8 x,u8 y,u8 *font,u8 fill,u8 alpha); void display_bl_init(void); void display_bl_toggle(void); void display_bl_on(void);