|
@ -106,12 +106,18 @@ static void ST7920_SWSPI_SND_8BIT(uint8_t val) { |
|
|
ST7920_SND_BIT; // 8
|
|
|
ST7920_SND_BIT; // 8
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#define ST7920_CS() {WRITE(ST7920_CS_PIN,1);u8g_10MicroDelay();} |
|
|
#if defined(DOGM_SPI_DELAY_US) && DOGM_SPI_DELAY_US > 0 |
|
|
#define ST7920_NCS() {WRITE(ST7920_CS_PIN,0);} |
|
|
#define U8G_DELAY() delayMicroseconds(DOGM_SPI_DELAY_US) |
|
|
#define ST7920_SET_CMD() {ST7920_SWSPI_SND_8BIT(0xf8);u8g_10MicroDelay();} |
|
|
#else |
|
|
#define ST7920_SET_DAT() {ST7920_SWSPI_SND_8BIT(0xfa);u8g_10MicroDelay();} |
|
|
#define U8G_DELAY() u8g_10MicroDelay() |
|
|
#define ST7920_WRITE_BYTE(a) {ST7920_SWSPI_SND_8BIT((uint8_t)((a)&0xf0u));ST7920_SWSPI_SND_8BIT((uint8_t)((a)<<4u));u8g_10MicroDelay();} |
|
|
#endif |
|
|
#define ST7920_WRITE_BYTES(p,l) {uint8_t i;for(i=0;i<l;i++){ST7920_SWSPI_SND_8BIT(*p&0xf0);ST7920_SWSPI_SND_8BIT(*p<<4);p++;}u8g_10MicroDelay();} |
|
|
|
|
|
|
|
|
#define ST7920_CS() { WRITE(ST7920_CS_PIN,1); U8G_DELAY(); } |
|
|
|
|
|
#define ST7920_NCS() { WRITE(ST7920_CS_PIN,0); } |
|
|
|
|
|
#define ST7920_SET_CMD() { ST7920_SWSPI_SND_8BIT(0xf8); U8G_DELAY(); } |
|
|
|
|
|
#define ST7920_SET_DAT() { ST7920_SWSPI_SND_8BIT(0xfa); U8G_DELAY(); } |
|
|
|
|
|
#define ST7920_WRITE_BYTE(a) { ST7920_SWSPI_SND_8BIT((uint8_t)((a)&0xf0u)); ST7920_SWSPI_SND_8BIT((uint8_t)((a)<<4u)); U8G_DELAY(); } |
|
|
|
|
|
#define ST7920_WRITE_BYTES(p,l) { for (uint8_t i = l + 1; --i;) { ST7920_SWSPI_SND_8BIT(*p&0xf0); ST7920_SWSPI_SND_8BIT(*p<<4); p++; } U8G_DELAY(); } |
|
|
|
|
|
|
|
|
uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) { |
|
|
uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) { |
|
|
uint8_t i, y; |
|
|
uint8_t i, y; |
|
@ -167,13 +173,13 @@ uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, vo |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
#if PAGE_HEIGHT == 8 |
|
|
#if PAGE_HEIGHT == 8 |
|
|
return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); |
|
|
return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); |
|
|
#elif PAGE_HEIGHT == 16 |
|
|
#elif PAGE_HEIGHT == 16 |
|
|
return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); |
|
|
return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); |
|
|
#else |
|
|
#else |
|
|
return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); |
|
|
return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); |
|
|
#endif |
|
|
#endif |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
uint8_t u8g_dev_st7920_128x64_rrd_buf[(LCD_PIXEL_WIDTH) * (PAGE_HEIGHT) / 8] U8G_NOCOMMON; |
|
|
uint8_t u8g_dev_st7920_128x64_rrd_buf[(LCD_PIXEL_WIDTH) * (PAGE_HEIGHT) / 8] U8G_NOCOMMON; |
|
|