void clear_display(void) { // write_vfd_8bit(0); write_vfd_8bit(0); write_vfd_8bit(0); write_vfd_8bit(0); STROBE_HIGH; STROBE_LOW; }
void clear_display(void) { write_vfd_8bit(0); write_vfd_8bit(0); write_vfd_8bit(0); write_vfd_8bit(0); LATCH_DISABLE; LATCH_ENABLE; }
// Writes to the HV5812 driver for IV-22 // HV1~4: Digit grids, 4 bits // HV5~6: NC // HV7~14: VFD segments, 8 bits // HV15~20: NC void write_vfd_iv22(uint8_t digit, uint8_t segments) { uint32_t val = (1 << digit) | ((uint32_t)segments << 6); write_vfd_8bit(0); // unused upper byte: for HV518P only write_vfd_8bit(val >> 16); write_vfd_8bit(val >> 8); write_vfd_8bit(val); LATCH_DISABLE; LATCH_ENABLE; }
// Writes to the HV5812 driver for IV-6 // HV1~10: Digit grids, 10 bits // HV11~18: VFD segments, 8 bits // HV19~20: NC void write_vfd_iv18(uint8_t digit, uint8_t segments) { if (dots & (1<<digit)) segments |= (1<<7); // DP is at bit 7 uint32_t val = (1 << digit) | ((uint32_t)segments << 10); write_vfd_8bit(0); // unused upper byte: for HV518P only write_vfd_8bit(val >> 16); write_vfd_8bit(val >> 8); write_vfd_8bit(val); LATCH_DISABLE; LATCH_ENABLE; }
// Writes to the HV5812 driver for IV-17 // HV1~4: Digit grids, 4 bits // HV 5~2: VFD segments, 16-bits void write_vfd_iv17_6d(uint8_t digit, uint16_t segments) { uint32_t val = 0; if (digit == 0) { EXTRA1_LOW; EXTRA2_HIGH; val = ((uint32_t)segments << 4); } else if (digit == 5) { EXTRA1_HIGH; EXTRA2_LOW; val = ((uint32_t)segments << 4); } else { EXTRA1_LOW; EXTRA2_LOW; val = (1 << (digit-1)) | ((uint32_t)segments << 4); } //uint32_t val = (1 << digit) | ((uint32_t)segments << 4); // write_vfd_8bit(0); // unused upper byte: for HV518P only write_vfd_8bit(val >> 16); write_vfd_8bit(val >> 8); write_vfd_8bit(val); // STROBE_HIGH; // Strobe high // STROBE_LOW; // Strobe low }
// Writes to the HV5812 driver for IV-17 // HV1~4: Digit grids, 4 bits // HV 5~2: VFD segments, 16-bits void write_vfd_iv17(uint8_t digit, uint16_t segments) { uint32_t val = (1 << digit) | ((uint32_t)segments << 4); // write_vfd_8bit(0); // unused upper byte: for HV518P only write_vfd_8bit(val >> 16); write_vfd_8bit(val >> 8); write_vfd_8bit(val); // STROBE_HIGH; // Strobe high // STROBE_LOW; // Strobe low }
// Writes to the HV5812 driver for IV-18 // HV1~10: Digit grids, 10 bits // HV11~18: VFD segments, 8 bits // HV19~20: NC void write_vfd_iv18(uint8_t digit, uint8_t segments) { if (dots & (1<<digit)) segments |= (1<<7); // DP is at bit 7 uint32_t val = (1 << digit) | ((uint32_t)segments << 10); // write_vfd_8bit(0); // unused upper byte: for HV518P only write_vfd_8bit(val >> 16); write_vfd_8bit(val >> 8); write_vfd_8bit(val); // STROBE_HIGH; // STROBE_LOW; }