LiquidCrystal_1602_RUS :: LiquidCrystal_1602_RUS(uint8_t rs, uint8_t enable, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) : LiquidCrystal (rs, enable, d0, d1, d2, d3) { symbol_index = 0; cursor_col = 0; cursor_row = 0; ResetAllIndex();//Сброс значений индексов (неинициализированы = 255) }
void LCD_1602_RUS::CharSetToLCD(uint8_t *array, uint8_t *index) { uint8_t x,y; if(*index == 255)// Если символ еще не создан, то создаем { x = getCursorCol(); y = getCursorRow(); createChar(symbol_index, (uint8_t *)array);// Создаем символ на текущем (по очереди) месте в знакогенераторе (от 0 до MAX_SYMBOL_COUNT) setCursor(x,y); write(symbol_index);// Выводим символ на экран //Запоминаем, что букве соответствует определенный индекс *index = symbol_index; symbol_index++; if(symbol_index >= MAX_SYMBOL_COUNT) { symbol_index = 0; ResetAllIndex(); } } else //Иначе печатаем уже существующий write(*index); }
LCD_1602_RUS :: LCD_1602_RUS(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows) : LiquidCrystal_I2C (lcd_Addr, lcd_cols, lcd_rows) { cols_count = lcd_cols; symbol_index = 0; ResetAllIndex();//Сброс значений индексов (неинициализированы = 255) }
void LCD_1602_RUS::clear() { LiquidCrystal_I2C::clear(); ResetAllIndex(); }
void LiquidCrystal_1602_RUS::clear() { LiquidCrystal::clear(); ResetAllIndex(); }