Forum: Mikrocontroller und Digitale Elektronik rx_buffer Problem


von Kalle (Gast)


Lesenswert?

Hallo
Bin am verzweifeln..
Hab einen 4433 und die UART aktiviert mit RX-int. am M20 Terminal.
Hab ne while schleife in der der rx_buffer abgefragt wird.

i=strspn(ring,rx_buffer); //ring
  if(i==4)
   {...test... };

wird ein "RING" erkannt soll das Programm test ausgeführt werden.
Es funktioniert auch.In diesem Prog "test" frage ich die rufnummer
ab.Ist die Rufnummer ok soll Prog "richtig" ausgeführt werden.

putsf("AT+CLCC");putchar('\r');delay_ms(2000);
 i=strspn(absender,rx_buffer);
  if(i==13)
   {....richtig...}

Leider klappt das mit jeder Rufnummer von meinem 2 Handykarten.
Hab schon den rx_buffer gelöscht aber leider ohne erfolg.
Wie bekomme ich den kompletten rx_buffer leer???
Habs versucht mit:
memset( rx_buffer, 0, sizeof( rx_buffer));
gibts ne bessere Lösung? Oder ist rx_buffer falsch?

Gruß kalle

von Rufus T. Firefly (Gast)


Lesenswert?

Mir scheint strspn als Vergleichsfunktion ungeeignet:

void main( void )
{
   char string[] = "cabbage";
   int  result;
   result = strspn( string, "abc" );
   printf( "The portion of '%s' containing only a, b, or c "
           "is %d bytes long\n", string, result );
}

ergibt nämlich folgendes:
The portion of 'cabbage' containing only a, b, or c is 5 bytes long

Wie wär's mit strncmp oder strncmpi?

von Kalle (Gast)


Lesenswert?

Mit strncmpi gehts leider nicht.Ich benutze Codevision, da gibt´s solch
Befehl nicht.
Hab mit strncmp probiert, geht leider auch nicht da ja die ersten
Zeichen verglichen werden und es bei mir irgendwo im rx_buffer steht.
Hab auch schon ATI zum GSM Modem geschickt um mit der Antwort mein
buffer zu überschreiben.Leider auch umsonst. Ist schon peinlich aber
ich beiße mich in irgendwas fest  :-((
Gruß Kalle

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.