Add option DOGM_SPI_DELAY_US

This commit is contained in:
Scott Lahteine 2016-11-24 21:49:55 -06:00
parent 71842b6a17
commit 5460a529da
19 changed files with 181 additions and 103 deletions

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
#define USE_SMALL_INFOFONT #define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -473,15 +473,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -468,15 +468,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -462,15 +462,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -462,15 +462,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -462,15 +462,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -467,15 +467,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -462,15 +462,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -460,15 +460,19 @@
#endif // SDSUPPORT #endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts: // Some additional options are available for graphical displays:
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// we don't have a big font for Cyrillic, Kana // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT //#define USE_BIG_EDIT_FONT
// If you have spare 2300Byte of progmem and want to use a // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// smaller font on the Info-screen uncomment the next line. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT //#define USE_SMALL_INFOFONT
// Enable this option and reduce the value to optimize screen updates.
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
//#define DOGM_SPI_DELAY_US 5
#endif // DOGLCD #endif // DOGLCD
// @section safety // @section safety

View file

@ -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;