Skip to content

Commit

Permalink
issue #767 (2nd HW SPI for ST7920)
Browse files Browse the repository at this point in the history
  • Loading branch information
olikraus committed Dec 21, 2018
1 parent 4bdfe2b commit 2605c5d
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 2 deletions.
36 changes: 36 additions & 0 deletions cppsrc/U8g2lib.h
Original file line number Diff line number Diff line change
Expand Up @@ -5557,6 +5557,12 @@ class U8G2_ST7920_192X32_1_HW_SPI : public U8G2 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_192X32_1_2ND_HW_SPI : public U8G2 {
public: U8G2_ST7920_192X32_1_2ND_HW_SPI(const u8g2_cb_t *rotation, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_192x32_1(&u8g2, rotation, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_192X32_2_SW_SPI : public U8G2 {
public: U8G2_ST7920_192X32_2_SW_SPI(const u8g2_cb_t *rotation, uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_192x32_2(&u8g2, rotation, u8x8_byte_arduino_4wire_sw_spi, u8x8_gpio_and_delay_arduino);
Expand All @@ -5569,6 +5575,12 @@ class U8G2_ST7920_192X32_2_HW_SPI : public U8G2 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_192X32_2_2ND_HW_SPI : public U8G2 {
public: U8G2_ST7920_192X32_2_2ND_HW_SPI(const u8g2_cb_t *rotation, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_192x32_2(&u8g2, rotation, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_192X32_F_SW_SPI : public U8G2 {
public: U8G2_ST7920_192X32_F_SW_SPI(const u8g2_cb_t *rotation, uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_192x32_f(&u8g2, rotation, u8x8_byte_arduino_4wire_sw_spi, u8x8_gpio_and_delay_arduino);
Expand All @@ -5581,6 +5593,12 @@ class U8G2_ST7920_192X32_F_HW_SPI : public U8G2 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_192X32_F_2ND_HW_SPI : public U8G2 {
public: U8G2_ST7920_192X32_F_2ND_HW_SPI(const u8g2_cb_t *rotation, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_192x32_f(&u8g2, rotation, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_128X64_1_8080 : public U8G2 {
public: U8G2_ST7920_128X64_1_8080(const u8g2_cb_t *rotation, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_p_128x64_1(&u8g2, rotation, u8x8_byte_arduino_8bit_8080mode, u8x8_gpio_and_delay_arduino);
Expand Down Expand Up @@ -5629,6 +5647,12 @@ class U8G2_ST7920_128X64_1_HW_SPI : public U8G2 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_128X64_1_2ND_HW_SPI : public U8G2 {
public: U8G2_ST7920_128X64_1_2ND_HW_SPI(const u8g2_cb_t *rotation, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_128x64_1(&u8g2, rotation, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_128X64_2_SW_SPI : public U8G2 {
public: U8G2_ST7920_128X64_2_SW_SPI(const u8g2_cb_t *rotation, uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_128x64_2(&u8g2, rotation, u8x8_byte_arduino_4wire_sw_spi, u8x8_gpio_and_delay_arduino);
Expand All @@ -5641,6 +5665,12 @@ class U8G2_ST7920_128X64_2_HW_SPI : public U8G2 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_128X64_2_2ND_HW_SPI : public U8G2 {
public: U8G2_ST7920_128X64_2_2ND_HW_SPI(const u8g2_cb_t *rotation, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_128x64_2(&u8g2, rotation, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_128X64_F_SW_SPI : public U8G2 {
public: U8G2_ST7920_128X64_F_SW_SPI(const u8g2_cb_t *rotation, uint8_t clock, uint8_t data, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_128x64_f(&u8g2, rotation, u8x8_byte_arduino_4wire_sw_spi, u8x8_gpio_and_delay_arduino);
Expand All @@ -5653,6 +5683,12 @@ class U8G2_ST7920_128X64_F_HW_SPI : public U8G2 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_ST7920_128X64_F_2ND_HW_SPI : public U8G2 {
public: U8G2_ST7920_128X64_F_2ND_HW_SPI(const u8g2_cb_t *rotation, uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_st7920_s_128x64_f(&u8g2, rotation, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8G2_LS013B7DH03_128X128_1_4W_SW_SPI : public U8G2 {
public: U8G2_LS013B7DH03_128X128_1_4W_SW_SPI(const u8g2_cb_t *rotation, uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8G2() {
u8g2_Setup_ls013b7dh03_128x128_1(&u8g2, rotation, u8x8_byte_arduino_4wire_sw_spi, u8x8_gpio_and_delay_arduino);
Expand Down
12 changes: 12 additions & 0 deletions cppsrc/U8x8lib.h
Original file line number Diff line number Diff line change
Expand Up @@ -2111,6 +2111,12 @@ class U8X8_ST7920_192X32_HW_SPI : public U8X8 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8X8_ST7920_192X32_2ND_HW_SPI : public U8X8 {
public: U8X8_ST7920_192X32_2ND_HW_SPI(uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
u8x8_Setup(getU8x8(), u8x8_d_st7920_192x32, u8x8_cad_st7920_spi, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8X8_ST7920_128X64_8080 : public U8X8 {
public: U8X8_ST7920_128X64_8080(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t enable, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
u8x8_Setup(getU8x8(), u8x8_d_st7920_128x64, u8x8_cad_001, u8x8_byte_arduino_8bit_8080mode, u8x8_gpio_and_delay_arduino);
Expand All @@ -2135,6 +2141,12 @@ class U8X8_ST7920_128X64_HW_SPI : public U8X8 {
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8X8_ST7920_128X64_2ND_HW_SPI : public U8X8 {
public: U8X8_ST7920_128X64_2ND_HW_SPI(uint8_t cs, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
u8x8_Setup(getU8x8(), u8x8_d_st7920_128x64, u8x8_cad_st7920_spi, u8x8_byte_arduino_2nd_hw_spi, u8x8_gpio_and_delay_arduino);
u8x8_SetPin_ST7920_HW_SPI(getU8x8(), cs, reset);
}
};
class U8X8_LS013B7DH03_128X128_4W_SW_SPI : public U8X8 {
public: U8X8_LS013B7DH03_128X128_4W_SW_SPI(uint8_t clock, uint8_t data, uint8_t cs, uint8_t dc, uint8_t reset = U8X8_PIN_NONE) : U8X8() {
u8x8_Setup(getU8x8(), u8x8_d_ls013b7dh03_128x128, u8x8_cad_001, u8x8_byte_arduino_4wire_sw_spi, u8x8_gpio_and_delay_arduino);
Expand Down
2 changes: 1 addition & 1 deletion sys/arduino/u8g2_page_buffer/HelloWorld/HelloWorld.ino
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@
//U8G2_ST7920_128X64_1_8080 u8g2(U8G2_R0, 8, 9, 10, 11, 4, 5, 6, 7, /*enable=*/ 18 /* A4 */, /*cs=*/ U8X8_PIN_NONE, /*dc/rs=*/ 17 /* A3 */, /*reset=*/ 15 /* A1 */); // Remember to set R/W to 0
//U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* clock=*/ 18 /* A4 */ , /* data=*/ 16 /* A2 */, /* CS=*/ 17 /* A3 */, /* reset=*/ U8X8_PIN_NONE);
//U8G2_ST7920_128X64_1_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* CS=*/ 10, /* reset=*/ 8);
//U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/ 10, /* reset=*/ 8);
U8G2_ST7920_128X64_1_2ND_HW_SPI u8g2(U8G2_R0, /* CS=*/ 10, /* reset=*/ 8);
//U8G2_ST7565_EA_DOGM128_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_ST7565_EA_DOGM128_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_ST7565_64128N_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
Expand Down
15 changes: 14 additions & 1 deletion tools/codebuild/codebuild.c
Original file line number Diff line number Diff line change
Expand Up @@ -1412,6 +1412,17 @@ struct interface interface_list[] =
"d0, d1, d2, d3, d4, d5, d6, d7, dc, e1, e2, reset",
"u8x8_byte_sed1520"
},
/* 14 */
{
/* ST7920 */ "2ND_HW_SPI",
"u8x8_SetPin_ST7920_HW_SPI",
"u8x8_byte_arduino_2nd_hw_spi",
"u8x8_gpio_and_delay_arduino",
"uint8_t cs, uint8_t reset = U8X8_PIN_NONE",
"cs, reset",
"cs [, reset]",
"uC specific"
},



Expand Down Expand Up @@ -1759,7 +1770,8 @@ void do_display(int controller_idx, int display_idx, const char *postfix)
if ( controller_list[controller_idx].com & COM_ST7920SPI )
{
do_display_interface(controller_idx, display_idx, postfix, 8); /* ST7920 SW SPI */
do_display_interface(controller_idx, display_idx, postfix, 9); /* HW SPI (not yet implemented) */
do_display_interface(controller_idx, display_idx, postfix, 9); /* HW SPI */
do_display_interface(controller_idx, display_idx, postfix, 14); /* 2ND HW SPI */
}
if ( controller_list[controller_idx].com & COM_UART )
{
Expand Down Expand Up @@ -2003,6 +2015,7 @@ void do_md_controller_list(void)
{
do_md_display_interface(controller_idx, display_idx, 8); /* ST7920 SW SPI */
do_md_display_interface(controller_idx, display_idx, 9); /* HW SPI (not yet implemented) */
do_md_display_interface(controller_idx, display_idx, 14); /* 2ND HW SPI */
}
if ( controller_list[controller_idx].com & COM_KS0108 )
{
Expand Down

0 comments on commit 2605c5d

Please sign in to comment.