Gast
#660860
Salu zusammen
Ich habe hier ein ganz komisches Prob. Manchmal läuft das Programm drei
vier mal durch und dann bleibt es einfach stehen.
unsigned char nmeabuffer[512];// Empfangsbuffer GPS Daten (NMEA Format)
int j = 0;
interrupt (UART1RX_VECTOR) usart1_rx(void)
{
_DINT();
nmeabuffer[j] = RXBUF1;
j += 1;
_EINT();
}
char GPRMC[100] = "";
char GPGGA[100] = "";
char GPVTG[100] = "";
if (j >= 510)
{
_DINT();
parse_nmea(nmeabuffer, GPRMC, GPGGA, GPVTG);
j = 0;
_EINT();
}
wenn ich nun nach parse_nmea einen Breakpoint setze, läuft er da auch
rein und ich sehe das er die einzelnen Datensätze abgefüllt hat. Nach
dem zweiten, dritten mal bleibt er dann einfach hängen und geht nicht
mehr weiter. Nun habe ich die Zeile parse_nmea(nmeabuffer, GPRMC, GPGGA,
GPVTG); als Kommentar eingefügt. Problem besteht weiterhin. Erst wenn
ich die Deklaration der Buffer GPRMC[100], GPGGA[100], GPVTG[100] auch
als Kommentar setze, läuft das Prog durch. Es kann doch dem Prog egal
sein ob ich Buffer deklariere die ich nicht verwende. Wieso habe ich das
Prob. ich seh es einfach nicht. Manchmal springt mir der Debugger auch
einfach wieder auf die erste main Zeile, dort wo ich den Watchdog
abschalte und Resetet sich sozusagen. Wäre toll wenn mal jemand schauen
könnte. im Anhang finded ihr noch die Funktion parse_nmea
Gruss relflection