Forum: Mikrocontroller und Digitale Elektronik Uart und W-Lan doppelte Übetragung


von Rolf (Gast)


Angehängte Dateien:

Lesenswert?

Abend zusammen,

ich brauchte mal wieder profesionelle hilfe, ich bin mit meinem Latein 
am Ende. Ich wollte mit einem AVR (ATMega1284P) und einem W-Lan modul 
(RS9110-N-11-22) aufbauen. Das ganze läuft per UART0 und am UART1 ist 
ein sensor (Razor) angeschlosschen. Die Daten kommen auch am PC an, nur 
doppelt.
Ich finde den Fehler nicht, warum am PC die Messergebnise zweimal 
ankommen?

MfG Rolf

(Ich weiss goto ist keine Lösung, aber es klappt, mir ist zurzeit noch 
keine besser schütz vorm aufhängen des W-Lans eingefallen. Dachte an 
switch funtkion oder habt Ihr eine Bessere Idee?)

Ich danke für die Hilfe

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rolf schrieb:
> Ich weiss goto ist keine Lösung,
Warum machst du es dann?
In so einer Funktion braucht NIEMAND NIEMALS ein goto!
1
void reset_soft()
2
{
3
Reset: wait_ms(500);
4
STK_puts("at+rsi_reset\r\n");
5
STK_gets( Line0, sizeof(Line0));
6
if(strstr(Line0,OK)) wait_ms(50);
7
goto Reset;
8
}
Das schreibt man so:
1
void reset_soft()
2
{
3
  do {  
4
    STK_puts("at+rsi_reset\r\n");
5
    STK_gets( Line0, sizeof(Line0));
6
  }  while( strstr(Line0,OK)==0 );
7
  wait_ms(50);
8
}
Und die Sache mit dem Zustandsautomaten (switch case) hast du richtig 
erfasst: so wird das richtigerweise gemacht.

Rolf schrieb:
> Die Daten kommen auch am PC an
Welche Daten? Von wo?

von Rolf (Gast)


Lesenswert?

Die daten kommen vom UART1  (zwischen 40 bis 60 byte lang) und werden in 
UART0 kopiert, ahnschliesend per W-Lan zu PC. Danke für den Hinweiss. 
Mit der Funktion

von Rolf (Gast)


Lesenswert?

Danke für den Hinweiss mit der Funktion, werde den tipp Übernhemen.

von holger (Gast)


Lesenswert?

Übles Programm;)

Probier mal

    strcpy(AT_Com, "");

vor deinem Kram

    strcat(AT_Com, laenge);
    strcat(AT_Com, doppel_null);
    strcat(AT_Com, Line0);
    strcat(AT_Com, endzeichen);

von holger (Gast)


Lesenswert?

>Probier mal
>
>    strcpy(AT_Com, "");
>
>vor deinem Kram

Ne, vergiss es wieder. Dieser goto Müll verwirrt total.

von Rolf (Gast)


Lesenswert?

>Dieser goto Müll verwirrt total.

Ich weis, aber es hat geklappt, werde es noch ändern in eine switch 
Funktion.

Für mich klingt es Logisch ;-P ist ja auch auf meinem miesst gewachsen. 
Haha

von Rolf (Gast)


Angehängte Dateien:

Lesenswert?

Habe noch das Konsolen Programm hochgeladen, nicht das der Fehler da 
drin steckt.

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.