GPS Modul liefert keine Daten mehr, nach dem Upload vom Code

Ich habe folgenden Code für einen Arduino UNO mit einem NEO6m Gps Modul:

#include <Arduino.h>
#include <avr/io.h>
#include <util/delay.h>

#define BAUD 9600
#define MY_UBRR F_CPU/16/BAUD-1                                     
void USART_Init(unsigned int ubrr) {                               
    UBRR0H = (unsigned char)(ubrr>>8);
    UBRR0L = (unsigned char)ubrr;
    UCSR0B = (1<<RXEN0)|(1<<TXEN0);
    UCSR0C = (1<<UCSZ01)|(1<<UCSZ00); 
}

void USART_Transmit(unsigned char data) {                           
    while (!(UCSR0A & (1<<UDRE0)));                                
    UDR0 = data;                                                    
}

unsigned char USART_Receive(void) {                                 
    while (!(UCSR0A & (1<<RXC0)));                                  
    return UDR0;                                                    
}

void USART_PrintString(const char* str) {                           
    while (*str) {                                                  
        USART_Transmit(*str++);                                     
    }
}

void nachGPRMCSortieren(char receivedData[][70]){                  
    for(int i=0; i<8; i++){                                           
        if (strncmp(receivedData[i], "$GPRMC", 6) != 0){           
             receivedData[i][0] = '\0';                            
        }
    }
}

void extrahiereAusrichtung(char receivedData[][70]) {
    for(int i = 0; i < 8; i++) {
        if(receivedData[i][0] != '\0') {
            const char* aktuellesZeichen = strtok(receivedData[i], ",");
            const char* letzterWert = NULL;  

            for(int h = 0; h < 9; h++) {
                aktuellesZeichen = strtok(NULL, ",");
                if(h == 8) {
                    if (aktuellesZeichen != NULL) {
                        letzterWert = aktuellesZeichen;  
                    }
                    else {
                   
                        if (letzterWert != NULL) {
                            USART_PrintString(letzterWert);
                        }
                        else {
                            
                            USART_PrintString("Kein GPS Signal verfügbar");
                        }
                    }
                }
            }
        }
    }
}



void sortierteDatenAusgeben(char receivedData[][70]){               
    USART_PrintString("\r\nProcessed Data:\r\n");                   
    for (int i = 0; i < 8; i++) {  
        USART_PrintString(receivedData[i]);                         
        USART_Transmit('\r');                                       
        USART_Transmit('\n');
    }
}
   
int main(void) {
    USART_Init(MY_UBRR);

   
    USART_PrintString("GPS-Modul Echo-Test\r\n");                   

    char receivedData[8][70];                                       
    int a = 0;                                                     
    int aktuellesString = 0;                                
    while(1) {
                                                                    
        unsigned char received = USART_Receive();                   
        USART_Transmit(received);                                  

        if(received == '$'){                                       
            if(a >= 8) {  
                nachGPRMCSortieren(receivedData);
                extrahiereAusrichtung(receivedData);
                sortierteDatenAusgeben(receivedData);
                a = 0;
            }
            aktuellesString = 0;                                   
            a++;                                                    
        }
        else if (aktuellesString < 70) {                            
            receivedData[a][aktuellesString ++] = received;         
        }
    }
    return 0;
}

Sobald ich aber den Code hochlade, passiert nichts. Die Verkabelung sollte korrekt sein. Obwohl sich die Geister streiten, ob der rx und tx vom GPS jeweils mit dem tx und rx des Arduinos verbunden werden müssen, oder andersherum. Ich stecke auch immer beim Hochladen beide Kabel ab, sodass nur noch Gnd und 3,3V angeschlossen sind. Es wird keine Fehlermeldung angezeigt. Ich brauche da irgendeinen Ansatz. Vielleicht liegt es am Zugriff auf die GPS Daten.

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.