changes...

This commit is contained in:
ChristianM_xp
2024-01-28 16:37:45 +01:00
parent 4f3c9c83cf
commit eaa5bbdcdc
2 changed files with 78 additions and 33 deletions

View File

@@ -2,9 +2,9 @@
#include <stddef.h>
void lcd_hd44780_writeToDisp(lcd_hd44780_t *inst){
inst->setGetDataIO_event(inst->DataGpio,inst->port_data,LCD_HD44780_SET);
inst->setGetGpio_event(&(inst->gpio_data),LCD_HD44780_SET);
}
/*
void lcd_hd44780_clearDisp(lcd_hd44780_t *inst){
return;
@@ -15,35 +15,67 @@ void lcd_hd44780_printf(lcd_hd44780_t *inst, char *string){
return;
}*/
static void lcd_writeCmd_disp(lcd_hd44780_t *inst, hd44780_cmd_t cmd, hd44780_setGet_t getSet){
inst->gpio_data.data_bus = cmd;
inst->gpio_data.rw_pin = getSet;
// We want to write an instruction.
inst->gpio_data.rs_pin = LCD_HD44780_INSTRUCTION;
// E pin is sopposed to be zero when data is ready on port.
inst->gpio_data.e_pin = 0;
inst->setGetGpio_event(&(inst->gpio_data),getSet);
// Then Clock data in with E pin:
inst->gpio_data.e_pin = 1;
inst->setGetGpio_event(&(inst->gpio_data),getSet);
// Then Clock data in with E pin:
inst->gpio_data.e_pin = 0;
inst->setGetGpio_event(&(inst->gpio_data),getSet);
}
void lcd_hd44780_regDataEvt(lcd_hd44780_t *inst ,void *inst_Data, setGet_DataGpio_Event_fpt getDataEvt_fpt){
void lcd_hd44780_regGpioEvt(lcd_hd44780_t *inst, setGet_Gpio_Event_fpt getGpioEvt_fpt){
if(inst == NULL)return;
if(inst_Data == NULL)return;
inst->DataGpio = inst_Data;
inst->setGetDataIO_event = getDataEvt_fpt;
//if(inst == NULL)return;
inst->setGetGpio_event = getGpioEvt_fpt;
}
void lcd_hd44780_regConfigEvt(lcd_hd44780_t *inst ,void *inst_Config, setGet_ConfigGpio_Event_fpt getConfigEvt_fpt){
if(inst == NULL)return;
if(inst_Config == NULL)return;
inst->SettingsGpio = inst_Config;
inst->setGetConfigIO_event = getConfigEvt_fpt;
return;
void lcd_hd44780_regWaitEvt(lcd_hd44780_t *inst, wait_ms_Event_fpt waitEvt_fpt){
//if(inst == NULL)return;
inst->wait_event = waitEvt_fpt;
}
void lcd_hd44780_init(lcd_hd44780_t *inst, lcd_hd44780_bitmode bit_mode){
inst->port_data = 0x00;
//inst->gpio_data = 0x00;
inst->bit_mode = bit_mode;
inst->gpio_data.data_bus = 0x0;
inst->gpio_data.e_pin = 0x0;
inst->gpio_data.rs_pin = 0x1;
inst->gpio_data.rw_pin = 0x0;
inst->setGetGpio_event(&(inst->gpio_data), 1);
lcd_writeCmd_disp(inst,LCD_HD44780_CLEAR_DISP,LCD_HD44780_SET);
//lcd_writeCmd_disp(inst,LCD_HD44780_DISP_ONOFF_CTL,LCD_HD44780_SET);
return;
}