31 lines
740 B
C++
31 lines
740 B
C++
#include "lcd.h"
|
|
|
|
constexpr uint8_t SHIFT_BACKLIGHT = 3;
|
|
|
|
LCD::LCD(i2c_inst_t *i2c, const uint gpio_sda, const uint gpio_scl,
|
|
const uint8_t i2c_addr, uint8_t num_cols, uint8_t num_lines)
|
|
: i2c_addr{i2c_addr}, num_cols{num_cols}, num_lines{num_lines} {
|
|
i2c_init(i2c1, 100 * 1000);
|
|
gpio_set_function(gpio_sda, GPIO_FUNC_I2C);
|
|
gpio_set_function(gpio_scl, GPIO_FUNC_I2C);
|
|
gpio_pull_up(gpio_sda);
|
|
gpio_pull_up(gpio_scl);
|
|
}
|
|
|
|
int LCD::backlight_off() {
|
|
uint8_t data = 0;
|
|
int ret{0};
|
|
|
|
ret = i2c_write_blocking(i2c1, i2c_addr, &data, 1, false);
|
|
|
|
return ret;
|
|
}
|
|
|
|
int LCD::backlight_on() {
|
|
uint8_t data = 1 << SHIFT_BACKLIGHT;
|
|
int ret{0};
|
|
|
|
ret = i2c_write_blocking(i2c1, i2c_addr, &data, 1, false);
|
|
|
|
return ret;
|
|
} |