AVR Studio - JTAG Debugger stoppt nach "PORTB&=" bzw. vor "_delay_ms(50)"

Gast #2451706
Lesenswert?

Hallo miteinander!

Ich hoffe jemand kann mir bei folgendem Problem helfen:
Ich versuche ein Display zu konfigurieren, dabei tritt aber gleich am 
Anfang folgender Fehler auf:
Im angehängten Programmcode arbeitet der Debugger alle Befehle bis 
"PORTB&=(~(0x02));" (habe da nur sicherheitshalber so viele Klammern 
drin), klickt man dann nochmals auf step into verschwindet der 
Befehlszeigepfeil und es steht nur mehr der Cursor da, bei abermaligem 
klicken werden alle debugging-befehle außer reset und pause deaktiviert. 
Was noch auffällt, ist, dass schon nach "PORTA&=..." das Zero-Flag 
gesetzt wird.
Ich benutze AVR Studio 4, den Olimex AVR-JTAG-USB und einen ATmega 32.
Vielleicht fällt jemandem etwas dazu ein!

Ich denke der folgende Code sollte reichen, sonst bitte einfach 
schreiben.
1
#include <avr/io.h>
2
#ifndef F_CPU
3
#define F_CPU 7372800UL
4
#endif
5
#include <util/delay.h>
6

7
void DIS_setup();
8
void DIS_sendchar(unsigned char sendchar, unsigned char mode84, unsigned char bfcheck, unsigned char rs);
9
unsigned char DIS_bfcheck(void);
10
void DIS_send4bit(unsigned char senddata);
11
void DIS_send8bit(unsigned char senddata);
12

13

14
int main(void){
15
  DDRD|=0x80;
16
  PORTD&=(~(0x80));
17
  DIS_setup();
18
  while(1);  
19
}
20

21
void DIS_setup(){
22

23
  //AUSGANGSKONFIGURATION//
24
  DDRA|=0x03;             //PORTA 0-1 (RS und R/W) auf ausgang
25
  DDRB|=0x02;      //PORTB 1 (E) auf ausgang
26
  PORTA&= ((0x03));        //PORTA  0-1 auf 0
27
  PORTB&= (~(0x02));    //PORTB 1 auf 0
28

29
   //DISPLAYKONFIGURATION//
30
  _delay_ms(50);    //anfangs 50 ms warten
31

32
  //function set 1
33
  DIS_sendchar(0x3, 0, 0, 0);  //erste 4-bit function set schicken

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