|
|
|
@ -106,12 +106,18 @@ static void ST7920_SWSPI_SND_8BIT(uint8_t val) {
|
|
|
|
|
ST7920_SND_BIT; // 8
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define ST7920_CS() {WRITE(ST7920_CS_PIN,1);u8g_10MicroDelay();}
|
|
|
|
|
#define ST7920_NCS() {WRITE(ST7920_CS_PIN,0);}
|
|
|
|
|
#define ST7920_SET_CMD() {ST7920_SWSPI_SND_8BIT(0xf8);u8g_10MicroDelay();}
|
|
|
|
|
#define ST7920_SET_DAT() {ST7920_SWSPI_SND_8BIT(0xfa);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();}
|
|
|
|
|
#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();}
|
|
|
|
|
#if defined(DOGM_SPI_DELAY_US) && DOGM_SPI_DELAY_US > 0
|
|
|
|
|
#define U8G_DELAY() delayMicroseconds(DOGM_SPI_DELAY_US)
|
|
|
|
|
#else
|
|
|
|
|
#define U8G_DELAY() u8g_10MicroDelay()
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#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 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;
|
|
|
|
|
}
|
|
|
|
|
#if PAGE_HEIGHT == 8
|
|
|
|
|
return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg);
|
|
|
|
|
#elif PAGE_HEIGHT == 16
|
|
|
|
|
return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg);
|
|
|
|
|
#else
|
|
|
|
|
return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg);
|
|
|
|
|
#endif
|
|
|
|
|
#if PAGE_HEIGHT == 8
|
|
|
|
|
return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg);
|
|
|
|
|
#elif PAGE_HEIGHT == 16
|
|
|
|
|
return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg);
|
|
|
|
|
#else
|
|
|
|
|
return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
uint8_t u8g_dev_st7920_128x64_rrd_buf[(LCD_PIXEL_WIDTH) * (PAGE_HEIGHT) / 8] U8G_NOCOMMON;
|
|
|
|
|