arduino for vfd

You are asking me to slog through ten pages of uncommented code - something which I absolutely will not do.

I would have trouble with my own code, even if it were just written yesterday, if it wasn't commented. As it now stands I can go through commented assembly language code written for a processor that I haven't used in 20 years with no trouble at all.

Also, your posts would be easier to comprehend if you were to divide them up into several paragraphs with one concept per paragraph.

How about a circuit diagram or at least a description of how you have things connected. Here's an excerpt from one of my programs (written several years ago) to give you an idea:

//             The numbers shown next to the ATmega168 are the
//              Arduino pin numbers, not the IC pin numbers. 
//
//                 ATmega168                       LCD module
//                ----------                      ---------- 
//               |          |                    |          |
//               |       PD7|7  -------------> 14|DB7       |
//               |       PD6|6  -------------> 13|DB6       |
//               |       PD5|5  -------------> 12|DB5       |
//               |       PD4|4  -------------> 11|DB4       |
//               |       PD3|3  -------------> 10|DB3       |
//               |       PD2|2  ------------->  9|DB2       |
//               |       PD1|1  ------------->  8|DB1       |
//               |       PD0|0  ------------->  7|DB0       |
//               |          |                    |          |
//               |       PB4|12 --------------> 6|E         |
//               |          |          Gnd ---> 5|RW        |
//               |       PB2|10 --------------> 4|RS        |
//               |          |                    |          |
//                ----------                      ---------- 

// These are the connections between the LCD module and the Arduino pins - you can 
//   use any Arduino pin for any LCD signal, in any order, as long as you make sure 
//   that your hardware connections agree with this list (or vice versa).

uint8_t  lcd_RS_Pin     = 10;
uint8_t  lcd_E_Pin      = 12;
uint8_t  lcd_DB0_Pin    =  0;                    // pin 0 has possible conflict with UART Rx
uint8_t  lcd_DB1_Pin    =  1;                    // pin 1 has possible conflict with UART Tx
uint8_t  lcd_DB2_Pin    =  2;
uint8_t  lcd_DB3_Pin    =  3;
uint8_t  lcd_DB4_Pin    =  4;
uint8_t  lcd_DB5_Pin    =  5;
uint8_t  lcd_DB6_Pin    =  6;
uint8_t  lcd_DB7_Pin    =  7;

Don