Forum: Mikrocontroller und Digitale Elektronik AVR Studio - JTAG Debugger stoppt nach "PORTB&=" bzw. vor "_delay_ms(50)"


von male (Gast)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

So ein delay lässt sich schwer debuggen.  Setz' einen Breakpoint
dahinter, und lass das bis dorthin in Echtzeit durchlaufen.

von male (Gast)


Lesenswert?

Aha.
Danke, das wars. Lieber doch ein Fehler vom Debugger als ein Fehler im 
Code :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.