void CLCD_Handler(char rs, char data) { switch(rs) { case RS_HIGH: CLCD_RS_HIGH(); break; case RS_LOW: CLCD_RS_LOW(); break; } CLCD_RW_LOW(); delay_us(1); CLCD_E_HIGH(); delay_us(500); GPIO_WriteBit(GPIOE, GPIO_Pin_5, (data & 0x01) == Bit_SET ? Bit_SET : Bit_RESET); // D0 GPIO_WriteBit(GPIOE, GPIO_Pin_6, ((data & 0x02) >> 1) == Bit_SET ? Bit_SET : Bit_RESET); // D1 GPIO_WriteBit(GPIOC, GPIO_Pin_6, ((data & 0x04) >> 2) == Bit_SET ? Bit_SET : Bit_RESET); // D2 GPIO_WriteBit(GPIOC, GPIO_Pin_7, ((data & 0x08) >> 3) == Bit_SET ? Bit_SET : Bit_RESET); // D3 GPIO_WriteBit(GPIOE, GPIO_Pin_11, ((data & 0x10) >> 4) == Bit_SET ? Bit_SET : Bit_RESET); // D4 GPIO_WriteBit(GPIOE, GPIO_Pin_12, ((data & 0x20) >> 5) == Bit_SET ? Bit_SET : Bit_RESET); // D5 GPIO_WriteBit(GPIOE, GPIO_Pin_13, ((data & 0x40) >> 6) == Bit_SET ? Bit_SET : Bit_RESET); // D6 GPIO_WriteBit(GPIOE, GPIO_Pin_14, ((data & 0x80) >> 7) == Bit_SET ? Bit_SET : Bit_RESET); // D7 delay_us(1); CLCD_E_LOW(); delay_us(500); CLCD_E_HIGH(); delay_us(1); }
void CLCD_Handler(char rs, char data) { switch(rs) { case RS_HIGH: CLCD_RS_HIGH(); break; case RS_LOW: CLCD_RS_LOW(); break; } CLCD_RW_LOW(); delay_us(1); CLCD_E_HIGH(); delay_us(500); GPIO_Write(GPIOE, data << 7); // DB0 at PE7 delay_us(1); CLCD_E_LOW(); delay_us(500); CLCD_E_HIGH(); delay_us(1); }