hoi,
habe das tutorial mal durchgeschaut und es so angepasst wie sein sein
soll, leider funktioniert es nict so wie ich will:
main:
1 | DDRA = 0xff;
|
2 | PORTA = 0x00;
|
3 | _delay_ms(20);
|
4 |
|
5 | //PA0=RS PA1=R/W
|
6 | PORTA &= ~(1<<PA0);
|
7 | PORTA &= ~(1<<PA1);
|
8 |
|
9 | //DB4-DB7=PA3-PA6
|
10 | //sende 3
|
11 | PORTA |= (1<<PA3);
|
12 | PORTA |= (1<<PA4);
|
13 | PORTA &= ~(1<<PA5);
|
14 | PORTA &= ~(1<<PA6);
|
15 |
|
16 | //PA2=enable
|
17 | PORTA |= (1<<PA2);
|
18 | _delay_us(5);
|
19 | PORTA &= ~(1<<PA2);
|
20 | _delay_ms(5);
|
21 |
|
22 | PORTA |= (1<<PA2);
|
23 | _delay_us(5);
|
24 | PORTA &= ~(1<<PA2);
|
25 | _delay_ms(2);
|
26 |
|
27 | PORTA |= (1<<PA2);
|
28 | _delay_us(5);
|
29 | PORTA &= ~(1<<PA2);
|
30 |
|
31 | // 4 Bit Modus aktivieren
|
32 | PORTA &= ~(1<<PA3);
|
33 | PORTA |= (1<<PA4);
|
34 | PORTA &= ~(1<<PA5);
|
35 | PORTA &= ~(1<<PA6);
|
36 |
|
37 | PORTA |= (1<<PA2);
|
38 | _delay_us(5);
|
39 | PORTA &= ~(1<<PA2);
|
40 |
|
41 | _delay_ms(1);
|
42 | lcd_command(0x25);
|
43 |
|
44 | _delay_ms(1);
|
45 | lcd_command(0x0F);
|
lcd_command wie im tutorial
1 | void lcd_command(unsigned char temp1)
|
2 | {
|
3 | unsigned char temp2 = temp1;
|
4 |
|
5 | PORTA &= ~(1<<PA0);
|
6 |
|
7 | temp1 = temp1 >> 4;
|
8 | temp1 = temp1 & 0x0F;
|
9 |
|
10 | PORTA &= ~(1<<PA3);
|
11 | PORTA &= ~(1<<PA4);
|
12 | PORTA &= ~(1<<PA5);
|
13 | PORTA &= ~(1<<PA6);
|
14 |
|
15 | if(temp1 & 0x01) PORTA |=(1<<PA3) ;
|
16 | if(temp1 & 0x02) PORTA |=(1<<PA4) ;
|
17 | if(temp1 & 0x04) PORTA |=(1<<PA5) ;
|
18 | if(temp1 & 0x08) PORTA |=(1<<PA6) ;
|
19 |
|
20 | _delay_us(1);
|
21 | PORTA |= (1<<PA2);
|
22 | _delay_us(5);
|
23 | PORTA &= ~(1<<PA2);
|
24 |
|
25 | temp2 = temp2 & 0x0F;
|
26 |
|
27 | PORTA &= ~(1<<PA3);
|
28 | PORTA &= ~(1<<PA4);
|
29 | PORTA &= ~(1<<PA5);
|
30 | PORTA &= ~(1<<PA6);
|
31 |
|
32 | if(temp2 & 0x01) PORTA |=(1<<PC3) ;
|
33 | if(temp2 & 0x02) PORTA |=(1<<PA4) ;
|
34 | if(temp2 & 0x04) PORTA |=(1<<PA5) ;
|
35 | if(temp2 & 0x08) PORTA |=(1<<PA6) ;
|
36 |
|
37 | PORTA |= (1<<PA2);
|
38 | _delay_us(5);
|
39 | PORTA &= ~(1<<PA2);
|
40 | _delay_us(42);
|
41 | }
|
zu sehen sind 8 kästchen á 5x8. aber kein blinken!?!
bein durchmessen liegen auch alle pegel an den richtigen ports, bzw
inputs des LCDs an! wo liegt mein fehler?