rx_buffer Problem

Gast #131565
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
Gast
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?
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.