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
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.