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.