Have you substituted an LCD for your VFD?
Don't have one; sent for 2 online yesterday 16x2 and 20x4, 5x7 dot matrix, arduino compatible.
That is what I thought. If you do not have an LCD and you do have a VFD then why were you using the timing diagrams for an LCD?
I also see, as mentioned before, the tAS (address set up time) for the LCD ...
Please tell me how this delay is accounted for in your code. It should be somewhere in here:
{
LCD_DPRT = cmnd; // ready data lines
LCD_CPRT &= ~ (1<<LCD_RS); // RS low (ref.quiz:lower line on the timing diagram)to select the Instruction register.
LCD_CPRT &= ~ (1<<LCD_RW); // RW low to write instructions.
LCD_CPRT |= (1<<LCD_EN); // Enable pin high to latch data on the falling edge.
delay_us(.23); // Enable pin high for 230 ns to enable latching of instruction set.
LCD_CPRT &= ~ (1<<LCD_EN); // LCD_EN pin of PortB low after sending an instruction.
delay_us(.23); // Delay 230 ns between instructions sent.
}
Believe me, you do not want to attempt to deal with the busy flag until you can get the device functioning with simple time delays between instructions.
Don