diff --git a/src/CoOS/portable/arch.c b/src/CoOS/portable/arch.c index 8ebe8b540..5cfef6de8 100644 --- a/src/CoOS/portable/arch.c +++ b/src/CoOS/portable/arch.c @@ -58,7 +58,7 @@ OS_STK *InitTaskContext(FUNCPtr task,void *param,OS_STK *pstk) * @note CoOS may schedule when exiting this ISR. ******************************************************************************* */ -void SysTick_Handler(void) +void SysTickk_Handler(void) { OSSchedLock++; /* Lock scheduler. */ OSTickCnt++; /* Increment systerm time. */ diff --git a/src/act/board_act.h b/src/act/board_act.h index e504aa0c1..8328976f2 100644 --- a/src/act/board_act.h +++ b/src/act/board_act.h @@ -108,8 +108,11 @@ extern uint16_t sessionTimer; #define wdt_reset() #endif -#define setBacklight(xx) +uint32_t check_soft_power(); -#define check_soft_power() (e_power_on) +#define setBacklight(xx) +#define __BACKLIGHT_ON +#define __BACKLIGHT_OFF +#define IS_BACKLIGHT_ON() (1) #endif diff --git a/src/eeprom_avr.cpp b/src/eeprom_avr.cpp index f4f5d0f63..f5d8b3341 100644 --- a/src/eeprom_avr.cpp +++ b/src/eeprom_avr.cpp @@ -807,7 +807,7 @@ void RlcFile::DisplayProgressBar(uint8_t x) { if (s_eeDirtyMsk || isWriting() || eeprom_buffer_size) { uint8_t len = s_eeDirtyMsk ? 1 : limit((uint8_t)1, (uint8_t)(7 - (m_rlc_len/m_ratio)), (uint8_t)7); - lcd_filled_rect(x+1, 0, 5, FH, SOLID, WHITE); + lcd_filled_rect(x+1, 0, 5, FH, SOLID, ERASE); lcd_filled_rect(x+2, 7-len, 3, len); } } diff --git a/src/gruvin9x/board_gruvin9x.h b/src/gruvin9x/board_gruvin9x.h index 4f9048169..1355e7fc8 100644 --- a/src/gruvin9x/board_gruvin9x.h +++ b/src/gruvin9x/board_gruvin9x.h @@ -50,4 +50,10 @@ extern void sdPoll10ms(); +#define SPEAKER_ON TCCR0A |= (1 << COM0A0) +#define SPEAKER_OFF TCCR0A &= ~(1 << COM0A0) +#define __BACKLIGHT_ON PORTC |= (1 << OUT_C_LIGHT) +#define __BACKLIGHT_OFF PORTC &= ~(1 << OUT_C_LIGHT) +#define IS_BACKLIGHT_ON() (PORTC & (1<= DISPLAY_H) return; if (x+w > DISPLAY_W) { w = DISPLAY_W - x; } @@ -476,7 +504,7 @@ void lcd_hlineStip(xcoord_t x, uint8_t y, xcoord_t w, uint8_t pat, uint8_t att) } } -void lcd_hline(xcoord_t x, uint8_t y, xcoord_t w, uint8_t att) +void lcd_hline(xcoord_t x, uint8_t y, xcoord_t w, LcdFlags att) { lcd_hlineStip(x, y, w, 0xff, att); } @@ -515,7 +543,7 @@ void lcd_vlineStip(xcoord_t x, int8_t y, int8_t h, uint8_t pat) } #else // allows the att parameter... -void lcd_vlineStip(xcoord_t x, int8_t y, int8_t h, uint8_t pat, uint8_t att) +void lcd_vlineStip(xcoord_t x, int8_t y, int8_t h, uint8_t pat, LcdFlags att) { if (x >= DISPLAY_W) return; if (h<0) { y+=h; h=-h; } @@ -554,7 +582,7 @@ void lcd_vline(xcoord_t x, int8_t y, int8_t h) lcd_vlineStip(x, y, h, 0xff); } -void lcd_rect(xcoord_t x, uint8_t y, xcoord_t w, uint8_t h, uint8_t pat, uint8_t att) +void lcd_rect(xcoord_t x, uint8_t y, xcoord_t w, uint8_t h, uint8_t pat, LcdFlags att) { lcd_vlineStip(x, y, h, pat); lcd_vlineStip(x+w-1, y, h, pat); @@ -563,10 +591,10 @@ void lcd_rect(xcoord_t x, uint8_t y, xcoord_t w, uint8_t h, uint8_t pat, uint8_t lcd_hlineStip(x, y, w, pat); } -void lcd_filled_rect(xcoord_t x, int8_t y, xcoord_t w, uint8_t h, uint8_t pat, uint8_t att) +void lcd_filled_rect(xcoord_t x, int8_t y, xcoord_t w, uint8_t h, uint8_t pat, LcdFlags att) { for (int8_t i=y; i=0 && i<64) lcd_hlineStip(x, i, w, pat, att); + if (i>=0 && i> 1) + ((pat & 1) << 7); } } diff --git a/src/lcd.h b/src/lcd.h index 89c720467..3b5d0d1bd 100644 --- a/src/lcd.h +++ b/src/lcd.h @@ -88,8 +88,8 @@ #define LEFT 0x80 /* align left */ /* line, rect, square flags */ -#define BLACK 0x02 -#define WHITE 0x04 +#define FORCE 0x02 +#define ERASE 0x04 #define ROUND 0x08 /* switches flags */ @@ -103,6 +103,8 @@ #define MIDSIZE 0x0100 #define SMLSIZE 0x0200 #define TINSIZE 0x0400 +#define GREY1 0x1000 +#define GREY2 0x2000 #else #define MIDSIZE DBLSIZE #define SMLSIZE 0x00 @@ -115,7 +117,14 @@ #define LcdFlags uint8_t #endif -#define DISPLAY_BUF_SIZE (DISPLAY_W*((DISPLAY_H+7)/8)) +#define DISPLAY_PLAN_SIZE (DISPLAY_W*((DISPLAY_H+7)/8)) + +#if defined(PCBX9D) +#define DISPLAY_BUF_SIZE (2*DISPLAY_PLAN_SIZE) +#else +#define DISPLAY_BUF_SIZE DISPLAY_PLAN_SIZE +#endif + extern uint8_t displayBuf[DISPLAY_BUF_SIZE]; extern uint8_t lcdLastPos; @@ -173,21 +182,21 @@ extern void putsTime(xcoord_t x, uint8_t y, putstime_t tme, LcdFlags att, LcdFla #define SOLID 0xff #define DOTTED 0x55 -extern void lcd_plot(xcoord_t x, uint8_t y, uint8_t att=0); -extern void lcd_hline(xcoord_t x, uint8_t y, xcoord_t w, uint8_t att=0); -extern void lcd_hlineStip(xcoord_t x, uint8_t y, xcoord_t w, uint8_t pat, uint8_t att=0); +extern void lcd_plot(xcoord_t x, uint8_t y, LcdFlags att=0); +extern void lcd_hline(xcoord_t x, uint8_t y, xcoord_t w, LcdFlags att=0); +extern void lcd_hlineStip(xcoord_t x, uint8_t y, xcoord_t w, uint8_t pat, LcdFlags att=0); extern void lcd_vline(xcoord_t x, int8_t y, int8_t h); #if defined(PCBSTD) extern void lcd_vlineStip(xcoord_t x, int8_t y, int8_t h, uint8_t pat); #else -extern void lcd_vlineStip(xcoord_t x, int8_t y, int8_t h, uint8_t pat, uint8_t att=0); +extern void lcd_vlineStip(xcoord_t x, int8_t y, int8_t h, uint8_t pat, LcdFlags att=0); #endif -extern void lcd_rect(xcoord_t x, uint8_t y, xcoord_t w, uint8_t h, uint8_t pat=SOLID, uint8_t att=0); -extern void lcd_filled_rect(xcoord_t x, int8_t y, xcoord_t w, uint8_t h, uint8_t pat=SOLID, uint8_t att=0); +extern void lcd_rect(xcoord_t x, uint8_t y, xcoord_t w, uint8_t h, uint8_t pat=SOLID, LcdFlags att=0); +extern void lcd_filled_rect(xcoord_t x, int8_t y, xcoord_t w, uint8_t h, uint8_t pat=SOLID, LcdFlags att=0); extern void lcd_invert_line(int8_t y); #define lcd_status_line() lcd_invert_line(7) -inline void lcd_square(xcoord_t x, uint8_t y, xcoord_t w, uint8_t att=0) { lcd_rect(x, y, w, w, SOLID, att); } +inline void lcd_square(xcoord_t x, uint8_t y, xcoord_t w, LcdFlags att=0) { lcd_rect(x, y, w, w, SOLID, att); } #define DO_CROSS(xx,yy,ww) \ lcd_vline(xx,yy-ww/2,ww); \ @@ -221,7 +230,7 @@ const pm_char * bmpLoad(uint8_t *dest, const char *filename); #ifdef SIMU extern bool lcd_refresh; -extern uint8_t lcd_buf[DISPLAY_W*DISPLAY_H/8]; +extern uint8_t lcd_buf[DISPLAY_BUF_SIZE]; #endif #endif diff --git a/src/menus.cpp b/src/menus.cpp index fc55043f2..baa6c51e0 100644 --- a/src/menus.cpp +++ b/src/menus.cpp @@ -64,13 +64,13 @@ void displayScreenIndex(uint8_t index, uint8_t count, uint8_t attr) #if !defined(PCBSTD) void displayScrollbar(uint8_t x, uint8_t y, uint8_t h, uint16_t offset, uint16_t count, uint8_t visible) { - lcd_vlineStip(x, y, h, SOLID, WHITE); + lcd_vlineStip(x, y, h, SOLID, ERASE); lcd_vlineStip(x, y, h, DOTTED); uint8_t yofs = (h * offset) / count; uint8_t yhgt = (h * visible) / count; if (yhgt + yofs > h) yhgt = h - yofs; - lcd_vlineStip(x, y + yofs, yhgt, SOLID, BLACK); + lcd_vlineStip(x, y + yofs, yhgt, SOLID, FORCE); } #endif @@ -626,7 +626,7 @@ const pm_char * s_global_warning = 0; void displayBox() { - lcd_filled_rect(10, 16, DISPLAY_W-20, 40, SOLID, WHITE); + lcd_filled_rect(10, 16, DISPLAY_W-20, 40, SOLID, ERASE); lcd_rect(10, 16, DISPLAY_W-20, 40); lcd_puts(16, 3*FH, s_warning); // could be a place for a s_warning_info @@ -745,7 +745,7 @@ const char * displayMenu(uint8_t event) uint8_t display_count = min(s_menu_count, (uint16_t)MENU_MAX_LINES); - lcd_filled_rect(MENU_X, 16, MENU_W, display_count * (FH+1) + 2, SOLID, WHITE); + lcd_filled_rect(MENU_X, 16, MENU_W, display_count * (FH+1) + 2, SOLID, ERASE); lcd_rect(MENU_X, 16, MENU_W, display_count * (FH+1) + 2); for (uint8_t i=0; i0 && i0 && m_posHorz==i) { if (s_editMode==1 || !BLINK_ON_PHASE) { // do selection square - lcd_filled_rect(xx-1, yy-2, 5, 5, SOLID, BLACK); + lcd_filled_rect(xx-1, yy-2, 5, 5, SOLID, FORCE); lcd_filled_rect(xx, yy-1, 3, 3, SOLID); } diff --git a/src/open9x.h b/src/open9x.h index cc97a3e2a..1f5c3fd0c 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -928,39 +928,6 @@ extern void backlightOn(); #define NUMBER_ANALOG 8 #endif -#if defined(PCBSKY9X) -// TODO remove -void read_9_adc(void); -#endif - -#if defined(PCBACT) -#define __BACKLIGHT_ON -#define __BACKLIGHT_OFF -#define IS_BACKLIGHT_ON() (1) -#elif defined(PCBX9D) -#define __BACKLIGHT_ON GPIO_SetBits(GPIOB, GPIO_Pin_BL) -#define __BACKLIGHT_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_BL) -#define IS_BACKLIGHT_ON() (GPIOB & GPIO_Pin_BL) -#elif defined (PCBSKY9X) -#define __BACKLIGHT_ON (PWM->PWM_CH_NUM[0].PWM_CDTY = g_eeGeneral.backlightBright) -#define __BACKLIGHT_OFF (PWM->PWM_CH_NUM[0].PWM_CDTY = 100) -#define IS_BACKLIGHT_ON() (PWM->PWM_CH_NUM[0].PWM_CDTY != 100) -#elif defined (PCBGRUVIN9X) -#define SPEAKER_ON TCCR0A |= (1 << COM0A0) -#define SPEAKER_OFF TCCR0A &= ~(1 << COM0A0) -#define __BACKLIGHT_ON PORTC |= (1 << OUT_C_LIGHT) -#define __BACKLIGHT_OFF PORTC &= ~(1 << OUT_C_LIGHT) -#define IS_BACKLIGHT_ON() (PORTC & (1<setData (buf2,0); + bmp->setData(buf2,0); bmp->render(); - bmf->setBitmap( bmp ); + bmf->setBitmap(bmp); } } diff --git a/src/sky9x/board_sky9x.h b/src/sky9x/board_sky9x.h index e7015d8e6..13543645b 100644 --- a/src/sky9x/board_sky9x.h +++ b/src/sky9x/board_sky9x.h @@ -121,8 +121,13 @@ uint32_t spi_operation( register uint8_t *tx, register uint8_t *rx, register uin #define wdt_reset() WDT->WDT_CR = 0xA5000001 #endif -#define setBacklight(xx) PWM->PWM_CH_NUM[0].PWM_CDTYUPD = xx; - uint32_t check_soft_power(); +#define setBacklight(xx) PWM->PWM_CH_NUM[0].PWM_CDTYUPD = xx +#define __BACKLIGHT_ON (PWM->PWM_CH_NUM[0].PWM_CDTY = g_eeGeneral.backlightBright) +#define __BACKLIGHT_OFF (PWM->PWM_CH_NUM[0].PWM_CDTY = 100) +#define IS_BACKLIGHT_ON() (PWM->PWM_CH_NUM[0].PWM_CDTY != 100) + +void read_9_adc(void); + #endif diff --git a/src/stock/board_stock.h b/src/stock/board_stock.h index 2ca91af6f..8eb78ee3e 100644 --- a/src/stock/board_stock.h +++ b/src/stock/board_stock.h @@ -52,4 +52,14 @@ bool checkSlaveMode(); #define JACK_PPM_OUT() PORTG &= ~(1<>8) ); - I2C_WAIT_ACK(); - I2C_SEND_DATA((uint8_t)(WriteAddr&0xFF)); - I2C_WAIT_ACK(); + I2C_SEND_DATA((uint8_t)((WriteAddr&0xFF00)>>8) ); + I2C_WAIT_ACK(); + I2C_SEND_DATA((uint8_t)(WriteAddr&0xFF)); + I2C_WAIT_ACK(); #endif - I2C_SEND_DATA(*pBuffer); - I2C_WAIT_ACK(); - I2C_STOP(); + I2C_SEND_DATA(*pBuffer); + I2C_WAIT_ACK(); + I2C_STOP(); } /** @@ -226,37 +240,37 @@ void I2C_EE_ByteWrite(uint8_t* pBuffer, uint16_t WriteAddr) */ void I2C_EE_BufferRead(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t NumByteToRead) { - I2C_START(); - I2C_SEND_DATA(EEPROM_ADDRESS |EE_CMD_WRITE); - I2C_WAIT_ACK(); + I2C_START(); + I2C_SEND_DATA(EEPROM_ADDRESS |EE_CMD_WRITE); + I2C_WAIT_ACK(); #ifdef EE_M24C08 - I2C_SEND_DATA(ReadAddr); - I2C_WAIT_ACK(); + I2C_SEND_DATA(ReadAddr); + I2C_WAIT_ACK(); #elif defined(EE_M24C64_32) - I2C_SEND_DATA((uint8_t)((ReadAddr & 0xFF00) >> 8)); - I2C_WAIT_ACK(); - I2C_SEND_DATA((uint8_t)(ReadAddr & 0x00FF)); - I2C_WAIT_ACK(); + I2C_SEND_DATA((uint8_t)((ReadAddr & 0xFF00) >> 8)); + I2C_WAIT_ACK(); + I2C_SEND_DATA((uint8_t)(ReadAddr & 0x00FF)); + I2C_WAIT_ACK(); #endif - I2C_STOP(); + I2C_STOP(); - I2C_START(); - I2C_SEND_DATA(EEPROM_ADDRESS | EE_CMD_READ); - I2C_WAIT_ACK(); - while(NumByteToRead) - { - if(NumByteToRead ==1){ - *pBuffer =I2C_READ(); - I2C_NO_ACK(); - I2C_STOP(); - }else{ - *pBuffer =I2C_READ(); - I2C_ACK(); - pBuffer++; - } - NumByteToRead--; - } + I2C_START(); + I2C_SEND_DATA(EEPROM_ADDRESS | EE_CMD_READ); + I2C_WAIT_ACK(); + while (NumByteToRead) { + if (NumByteToRead == 1) { + *pBuffer =I2C_READ(); + I2C_NO_ACK(); + I2C_STOP(); + } + else { + *pBuffer =I2C_READ(); + I2C_ACK(); + pBuffer++; + } + NumByteToRead--; + } } /** @@ -267,7 +281,6 @@ void I2C_EE_BufferRead(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t NumByteToRe * @param NumByteToWrite : number of bytes to write to the EEPROM. * @retval None */ -//整页的整页写 其他多字节写 void I2C_EE_BufferWrite(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite) { uint8_t NumOfPage = 0, NumOfSingle = 0, count = 0; @@ -279,42 +292,34 @@ void I2C_EE_BufferWrite(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteTo NumOfSingle = NumByteToWrite % I2C_FLASH_PAGESIZE; /* If WriteAddr is I2C_FLASH_PAGESIZE aligned */ - if(Addr == 0) - { + if (Addr == 0) { /* If NumByteToWrite < I2C_FLASH_PAGESIZE */ - if(NumOfPage == 0) - { + if (NumOfPage == 0) { I2C_EE_PageWrite(pBuffer, WriteAddr, NumOfSingle); I2C_EE_WaitEepromStandbyState(); } /* If NumByteToWrite > I2C_FLASH_PAGESIZE */ - else - { - while(NumOfPage--) - { + else { + while (NumOfPage--) { I2C_EE_PageWrite(pBuffer, WriteAddr, I2C_FLASH_PAGESIZE); I2C_EE_WaitEepromStandbyState(); - WriteAddr += I2C_FLASH_PAGESIZE; + WriteAddr += I2C_FLASH_PAGESIZE; pBuffer += I2C_FLASH_PAGESIZE; } - if(NumOfSingle!=0) - { + if (NumOfSingle != 0) { I2C_EE_PageWrite(pBuffer, WriteAddr, NumOfSingle); I2C_EE_WaitEepromStandbyState(); } } } /* If WriteAddr is not I2C_FLASH_PAGESIZE aligned */ - else - { + else { /* If NumByteToWrite < I2C_FLASH_PAGESIZE */ - if(NumOfPage== 0) - { + if (NumOfPage== 0) { /* If the number of data to be written is more than the remaining space in the current page: */ - if (NumByteToWrite > count) - { + if (NumByteToWrite > count) { /* Write the data conained in same page */ I2C_EE_PageWrite(pBuffer, WriteAddr, count); I2C_EE_WaitEepromStandbyState(); @@ -323,42 +328,36 @@ void I2C_EE_BufferWrite(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteTo I2C_EE_PageWrite((uint8_t*)(pBuffer + count), (WriteAddr + count), (NumByteToWrite - count)); I2C_EE_WaitEepromStandbyState(); } - else - { + else { I2C_EE_PageWrite(pBuffer, WriteAddr, NumOfSingle); I2C_EE_WaitEepromStandbyState(); } } /* If NumByteToWrite > I2C_FLASH_PAGESIZE */ - else - { + else { NumByteToWrite -= count; NumOfPage = NumByteToWrite / I2C_FLASH_PAGESIZE; NumOfSingle = NumByteToWrite % I2C_FLASH_PAGESIZE; - if(count != 0) - { + if (count != 0) { I2C_EE_PageWrite(pBuffer, WriteAddr, count); I2C_EE_WaitEepromStandbyState(); WriteAddr += count; pBuffer += count; } - while(NumOfPage--) - { + while (NumOfPage--) { I2C_EE_PageWrite(pBuffer, WriteAddr, I2C_FLASH_PAGESIZE); I2C_EE_WaitEepromStandbyState(); WriteAddr += I2C_FLASH_PAGESIZE; pBuffer += I2C_FLASH_PAGESIZE; } - if(NumOfSingle != 0) - { + if (NumOfSingle != 0) { I2C_EE_PageWrite(pBuffer, WriteAddr, NumOfSingle); I2C_EE_WaitEepromStandbyState(); } } } - //I2C_EE_WaitEepromStandbyState(); } /** @@ -372,28 +371,27 @@ void I2C_EE_BufferWrite(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteTo */ void I2C_EE_PageWrite(uint8_t* pBuffer, uint16_t WriteAddr, uint8_t NumByteToWrite) { - I2C_START(); - I2C_SEND_DATA(EEPROM_ADDRESS|EE_CMD_WRITE); - I2C_WAIT_ACK(); + I2C_START(); + I2C_SEND_DATA(EEPROM_ADDRESS|EE_CMD_WRITE); + I2C_WAIT_ACK(); #ifdef EE_M24C08 - I2C_SEND_DATA(WriteAddr); - I2C_WAIT_ACK(); + I2C_SEND_DATA(WriteAddr); + I2C_WAIT_ACK(); #elif defined(EE_M24C64_32) - I2C_SEND_DATA((uint8_t)((WriteAddr & 0xFF00) >> 8)); - I2C_WAIT_ACK(); - I2C_SEND_DATA((uint8_t)(WriteAddr & 0x00FF)); - I2C_WAIT_ACK(); + I2C_SEND_DATA((uint8_t)((WriteAddr & 0xFF00) >> 8)); + I2C_WAIT_ACK(); + I2C_SEND_DATA((uint8_t)(WriteAddr & 0x00FF)); + I2C_WAIT_ACK(); #endif /* EE_M24C08 */ - /* While there is data to be written */ - while(NumByteToWrite--) - { - I2C_SEND_DATA(*pBuffer); - I2C_WAIT_ACK(); - pBuffer++; - } - I2C_STOP(); + /* While there is data to be written */ + while (NumByteToWrite--) { + I2C_SEND_DATA(*pBuffer); + I2C_WAIT_ACK(); + pBuffer++; + } + I2C_STOP(); } /** @@ -405,22 +403,10 @@ void I2C_EE_WaitEepromStandbyState(void) { /*__IO*/ volatile uint16_t SR1_Tmp = 0; - do - { - I2C_START(); - I2C_SEND_DATA(EEPROM_ADDRESS|EE_CMD_WRITE); + do { + I2C_START(); + I2C_SEND_DATA(EEPROM_ADDRESS|EE_CMD_WRITE); + } while (0 == I2C_WAIT_ACK()); - }while(0== I2C_WAIT_ACK()); I2C_STOP(); - } - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/ diff --git a/src/x9d/i2c_ee.h b/src/x9d/i2c_ee.h index 833ef931e..2236e9ae3 100644 --- a/src/x9d/i2c_ee.h +++ b/src/x9d/i2c_ee.h @@ -27,13 +27,9 @@ #include "stm32f2xx_conf.h" #include "stdint.h" -/* Exported types ------------------------------------------------------------*/ -/* Exported constants --------------------------------------------------------*/ - - -#define EE_CMD_WRITE (0) -#define EE_CMD_READ (1) -#define I2C_delay() do{delayUsec(5);}while(0) +#define EE_CMD_WRITE (0) +#define EE_CMD_READ (1) +#define I2C_delay() do { delayUsec(5); } while(0) #define SCL_H do{GPIOB->BSRRL = I2C_EE_SCL;}while(0) #define SCL_L do{GPIOB->BSRRH = I2C_EE_SCL;}while(0) diff --git a/src/x9d/lcd_driver.cpp b/src/x9d/lcd_driver.cpp index 38227a858..35d2aed92 100644 --- a/src/x9d/lcd_driver.cpp +++ b/src/x9d/lcd_driver.cpp @@ -26,14 +26,15 @@ void Set_Address(u8 x, u8 y) void lcdRefresh() { for (uint8_t y=0; y>3)*DISPLAY_W]; uint8_t mask = (1 << (y%8)); Set_Address(0, y); AspiCmd(0xAF); for (uint8_t x=0; x