void hd44780_wr_hi_nibble(uint8_t data) { if (data & 0x10) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT4); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT4); } if (data & 0x20) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT5); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT5); } if (data & 0x40) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT6); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT6); } if (data & 0x80) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT7); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT7); } /* set the EN signal */hd44780_EN_On(); /* wait */hd44780_EN_high_delay(); /* reset the EN signal */ hd44780_EN_Off(); }
void hd44780_wr_lo_nibble( unsigned char data ) { if ( data & 0x01 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT4 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT4 ); } if ( data & 0x02 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT5 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT5 ); } if ( data & 0x04 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT6 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT6 ); } if ( data & 0x08 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT7 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT7 ); } /* set the EN signal */ hd44780_EN_On(); /* wait */ hd44780_EN_high_delay(); /* reset the EN signal */ hd44780_EN_Off(); }
void hd44780_wr_lo_nibble( unsigned char data ) { if ( data & 0x01 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_RESET); } if ( data & 0x02 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_RESET); } if ( data & 0x04 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_RESET); } if ( data & 0x08 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_RESET); } /* set the EN signal */ hd44780_EN_On(); /* wait */ hd44780_EN_high_delay(); /* reset the EN signal */ hd44780_EN_Off(); }
void hd44780_wr_hi_nibble( unsigned char data ) { if ( data & 0x10 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_SET); //GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT4 ); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_RESET); } if ( data & 0x20 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_RESET); } if ( data & 0x40 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_RESET); } if ( data & 0x80 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_RESET); } /* set the EN signal */ hd44780_EN_On(); /* wait */ hd44780_EN_high_delay(); /* reset the EN signal */ hd44780_EN_Off(); }
/* 8bit bus version */ void hd44780_write( unsigned char data ) { /* set the data bits */ if ( data & 0x01 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT0 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT0 ); } if ( data & 0x02 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT1 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT1 ); } if ( data & 0x04 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT2 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT2 ); } if ( data & 0x08 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT3 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT3 ); } if ( data & 0x10 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT4 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT4 ); } if ( data & 0x20 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT5 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT5 ); } if ( data & 0x40 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT6 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT6 ); } if ( data & 0x80 ) { GPIO_SetBits( HD44780_DATAPORT, HD44780_DATABIT7 ); } else { GPIO_ResetBits( HD44780_DATAPORT, HD44780_DATABIT7 ); } /* tell the lcd that we have a command to read in */ hd44780_EN_On(); /* wait long enough so that the lcd can see the command */ hd44780_EN_high_delay(); /* reset the ce line */ hd44780_EN_Off(); hd44780_init_end_delay(); }
/* 8bit bus version */ void hd44780_write( unsigned char data ) { /* set the data bits */ if ( data & 0x01 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT0,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT0,GPIO_PIN_RESET); } if ( data & 0x02 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT1,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT1,GPIO_PIN_RESET); } if ( data & 0x04 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT2,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT2,GPIO_PIN_RESET); } if ( data & 0x08 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT3,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT3,GPIO_PIN_RESET); } if ( data & 0x10 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT4,GPIO_PIN_RESET); } if ( data & 0x20 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT5,GPIO_PIN_RESET); } if ( data & 0x40 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT6,GPIO_PIN_RESET); } if ( data & 0x80 ) { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_SET); } else { HAL_GPIO_WritePin(HD44780_DATAPORT, HD44780_DATABIT7,GPIO_PIN_RESET); } /* tell the lcd that we have a command to read in */ hd44780_EN_On(); /* wait long enough so that the lcd can see the command */ hd44780_EN_high_delay(); /* reset the ce line */ hd44780_EN_Off(); hd44780_init_end_delay(); }
void hd44780_write(uint8_t data) { while (buttons_active){ } hd44780_active=1; controlLEDs_enable(0); /* set the data bits */ uint16_t dataportValue = HD44780_DATAPORT->IDR; HD44780_DATAPORT->ODR = (dataportValue & 0xFF00) + data; //In the current project the display uses PE0-PE7 GPIO, so it is possible to switch them by one command /* if (data & 0x01) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT0); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT0); } if (data & 0x02) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT1); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT1); } if (data & 0x04) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT2); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT2); } if (data & 0x08) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT3); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT3); } if (data & 0x10) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT4); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT4); } if (data & 0x20) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT5); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT5); } if (data & 0x40) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT6); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT6); } if (data & 0x80) { GPIO_SetBits(HD44780_DATAPORT, HD44780_DATABIT7); } else { GPIO_ResetBits(HD44780_DATAPORT, HD44780_DATABIT7); } */ /* tell the lcd that we have a command to read in */hd44780_EN_On(); /* wait long enough so that the lcd can see the command */hd44780_EN_high_delay(); /* reset the ce line */hd44780_EN_Off(); hd44780_init_end_delay(); hd44780_active=0; controlLEDs_enable(1); }