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
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?
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
Danke für den Hinweiss mit der Funktion, werde den tipp Übernhemen.
Ü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);
>Probier mal > > strcpy(AT_Com, ""); > >vor deinem Kram Ne, vergiss es wieder. Dieser goto Müll verwirrt total.
>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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.