#define DISPLAY_TURN_ON_OFF 0x3E
#define DISPLAY_SET_Z_ADDRESS 0xC0
void displayOn() {
cbi(RS_OUTPUT_PORT, RS_OUTPUT_PIN);
cbi(RW_OUTPUT_PORT, RW_OUTPUT_PIN);
cbi(CSA_OUTPUT_PORT, CSA_OUTPUT_PIN);
cbi(CSB_OUTPUT_PORT, CSB_OUTPUT_PIN);
writeCommand(DISPLAY_TURN_ON_OFF | 0x01);
writeCommand(DISPLAY_SET_Z_ADDRESS | 0x00);
sbi(CSA_OUTPUT_PORT, CSA_OUTPUT_PIN);
cbi(CSB_OUTPUT_PORT, CSB_OUTPUT_PIN);
writeCommand(DISPLAY_TURN_ON_OFF | 0x01);
writeCommand(DISPLAY_SET_Z_ADDRESS | 0x00);
sbi(CSB_OUTPUT_PORT, CSB_OUTPUT_PIN);
cbi(CSA_OUTPUT_PORT, CSA_OUTPUT_PIN);
writeCommand(DISPLAY_TURN_ON_OFF | 0x01);
writeCommand(DISPLAY_SET_Z_ADDRESS | 0x00);
}
void writeCommand(uint8_t cmd) {
busyWait();
cbi(RS_OUTPUT_PORT, RS_OUTPUT_PIN);
cbi(RW_OUTPUT_PORT, RW_OUTPUT_PIN);
DATA_OUTPUT_PORT = cmd;
sbi(EN_OUTPUT_PORT, EN_OUTPUT_PIN);
delay();
cbi(EN_OUTPUT_PORT, EN_OUTPUT_PIN);
}