9 #include <avr/pgmspace.h>
10 #include "../hardware.h"
72 uint8_t fill = invert?0xFF:0x00;
90 uint8_t fill = invert?0xFF:0x00;
95 for(uint8_t index = 0; index <
LCD_COL; index++)
115 void lcdPrintChar(uint8_t row, uint8_t col,
char ch,
bool invert) {
117 if((row>=
LCD_ROW)||(col>=LCD_COL))
120 if((ch<0x20)||(ch>0x7f))
126 const uint8_t *chdata = SMALL_FONT + ((ch - 0x20) * 5);
127 for(uint8_t pixels = 0; (pixels <
DATA_WIDTH) && (col < LCD_COL); pixels++, col++, chdata++) {
128 uint8_t data = pgm_read_byte_near(chdata);
155 void lcdPrint(uint8_t row, uint8_t col,
const char *str,
bool invert) {
156 for(;(*str!=
'\0')&&(col<LCD_COL);col+=
CHAR_WIDTH,str++)
179 void lcdPrintP(uint8_t row, uint8_t col,
const char *str,
bool invert) {
181 char ch = pgm_read_byte_near(str);
206 void lcdImageP(uint8_t row, uint8_t col,
const uint8_t *img,
bool invert) {
208 uint8_t data = pgm_read_byte_near(img++);
209 uint8_t height = (data >> 6) + 1;
210 uint8_t width = (data & 0x03F) + 1;
211 while((height>0)&&(row<
LCD_ROW)) {
216 for(uint8_t offset=0; offset<width; offset++, img++) {
217 if((col+offset)<LCD_COL) {
219 lcdData(~pgm_read_byte_near(img));
221 lcdData(pgm_read_byte_near(img));
void lcdClearRow(uint8_t row, bool invert)
void lcdClear(bool invert)
void wait(uint16_t millis)
void sspiOutMSB(uint8_t sck, uint8_t mosi, uint16_t data, uint8_t bits)
void lcdData(uint8_t data)
void lcdPrint(uint8_t row, uint8_t col, const char *str, bool invert)
void lcdPrintP(uint8_t row, uint8_t col, const char *str, bool invert)
void lcdCommand(uint8_t cmd)
void lcdPrintChar(uint8_t row, uint8_t col, char ch, bool invert)
void lcdImageP(uint8_t row, uint8_t col, const uint8_t *img, bool invert)