inline static lcd_data_t readLcdOnce(void) { dataIn(); palClearPad(GPIOC, GPIOC_LCD_CS); // __asm__ volatile ("nop"); lcd_data_t r = palReadPort(GPIOB); r = palReadPort(GPIOB); // Read two times for correct palSetPad(GPIOC, GPIOC_LCD_CS); dataOut(); return r; }
__inline uint8_t GDISP_LLD(readreg)(uint8_t lcdReg) { Set_CS; Set_RS; Clr_WR; Set_RD; palWritePort(GDISP_DATA_PORT, lcdReg); Clr_RS; uint16_t data = palReadPort(GDISP_DATA_PORT); Clr_CS; return data; }
__inline void GDISP_LLD(readstream)(uint16_t *buffer, size_t size) { uint16_t i; Set_CS; Clr_RS; Clr_WR; Set_RD; for(i = 0; i < size; i++) { Set_RD; buffer[i] = palReadPort(GDISP_DATA_PORT); Clr_RD; } }
__inline uint16_t GDISP_LLD(readdata)(void) { Set_CS; Clr_RS; Clr_WR; Set_RD; uint16_t data = palReadPort(GDISP_DATA_PORT); Clr_CS; return data; }