fehlersuche 161A

Gast #1492040
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren