Martin 567 schrieb:
> Ich würde jetzt einfach mithilfe von strcmp den string vergleichen und
> dann darauf reagieren, wahrscheinlich stimmt bloß was in der Syntax oder
> so nicht.
Das hätte dir der Compiler gesagt
> if (strcmp(test, "signal") == 0) //Befehl
> void send(void)
> { unsigned char test[]="signal\n ";
> rf12_txdata(test,10);
> }
Du sendest nicht "signal".
Du sendest "signal" und dann noch ein Carriage Return. Kein Wunder dass
daher der empfangene String nicht identisch ist du "signal"
Es sei denn natürlich, dass eine der Funktionen rf12_txdata bzw
rf12_rxdata den \n ausfiltern. Aber normalerweise halten sich derartige
Funktionen da raus.
PS: Was bedeuten eigentlich die 10 in
rf12_txdata(test,10);
da fällt mir kein wirklicher Grund dafür ein, warum eine Funktion
rf12_txdata eine 10 bekommen sollte. Länge des Strings - ja. Aber
"signal\n" ist ja nicht 10 Zeichen lang, sondern nur 7 oder besser
gesagt strlen( "signal\n" ) Zeichen.
Auf jeden Fall solltest du dir die Funktionen rf12_txdata und
rf12_rxdata mal genauer ansehen, was die eigentlich exakt machen.