Hallo, ich versuche derzeit das Noritake VFD Display aus dem Anhang per ATMega 32 anzusteuern. Den Testmodus des Displays habe ich schon ausprobiert, dieser funktioniert und das Display spielt seine Testsequenz ab. Versuche ich nun aber den Buchstabe "A" auf dem Display auszugeben passiert einfach nichts. Ich verwende dafür aktuell folgenden Code:
1 | DDRA = 0xff; //PORTA als Ausgang |
2 | DDRD |= (1 << DDD5) | (1 << DDD4) | (1 << DDD3); //PC3,4,5 als Ausgang |
3 | |
4 | PORTD |= (1<<PD4); //RESET auf High |
5 | PORTD |= (1<<PD3); //WR AUF HIGH |
6 | _delay_ms(1); |
7 | |
8 | PORTA = 0b00000001; //Header ausgeben |
9 | _delay_us(10); //Warten |
10 | PORTD &= ~(1<<PD3); //WR toggeln |
11 | _delay_us(80); //Warten |
12 | |
13 | PORTD |= (1<<PD3); //WR wieder auf 1 |
14 | PORTA = 0b01000011; //OP Code 0x43 ausgeben |
15 | _delay_us(10); //Warten |
16 | PORTD &= ~(1<<PD3); //WR toggeln |
17 | _delay_us(80); //Warten |
18 | |
19 | PORTD |= (1<<PD3); //WR wieder auf 1 |
20 | PORTA = 0b00000000; //Start Adresse 0x00 ausgeben |
21 | _delay_us(10); //Warten |
22 | PORTD &= ~(1<<PD3); //WR toggeln |
23 | _delay_us(80); //Warten |
24 | |
25 | PORTD |= (1<<PD3); //WR wieder auf 1 |
26 | PORTA = 0b00000100; //länge ausgeben 0x04 |
27 | _delay_us(10); //Warten |
28 | PORTD &= ~(1<<PD3); //WR toggeln |
29 | _delay_us(80); //Warten |
30 | |
31 | PORTD |= (1<<PD3); //WR wieder auf 1 |
32 | PORTA = 0b01000001; //Write Mode wählen 0x41 |
33 | _delay_us(10); //Warten |
34 | PORTD &= ~(1<<PD3); //WR toggeln |
35 | _delay_us(80); //Warten |
36 | |
37 | PORTD |= (1<<PD3); //WR wieder auf 1 |
38 | PORTA = 0b10000010; // 'A' auf dem Display ausgeben |
39 | _delay_us(10); //Warten |
40 | PORTD &= ~(1<<PD3); //WR toggeln |
Habe ich in meiner Interpretation des Datenblattes einen Fehler gemacht, bzw. hat das Programm einen Fehler? Leider konnte ich kein bestehendes Programm zu diesem Display finden, indem ich hätte nachgucken können, da die ganzen "neueren" VFDs alle I2C, RS232 oder SPI haben. Vielen Dank für eure Hilfe! Gruß, Daniel