www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik rx_buffer Problem


Autor: Kalle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kalle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.