Hallo,
@Lifty:
Die Signatur des Prototypen ist folgendermassen:test.c:22: warning: passing arg 1 of `SerRead' makes pointer from integer without a cast
test.c:22: error: void value not ignored as it ought to be
d.h.Code:void SerRead(unsigned char *data, unsigned char length, unsigned int timeout);
der 1. Parameter ist ein pointer auf eine char Variable,
der 2. Parameter ist dessen Länge (maximal)
der 3. Parameter der Timeout
Du rufst die Funktion aber folgendermassen auf:
Fehler 1: 'a' ist keine Variablewhile (SerRead('a',1,9)==1) {
Fehler 2: die Funktion ist void und liefert somit keinen Wert
Beispiel:
Code:#include <string.h> #include "asuro.h" // Deklaration der Variablen char szReceive[30]; int main(void) { Init(); // nur einmal aufrufen!! // Lesen von einem Zeichen in die Variable szReceive, Timeout 9msec SerRead((char*)szReceive, 1, 9); // String hinter dem Zeichen terminieren. szReceive[1] = 0; // Anhängen von " received\r\n" and den Inhalt von szReceive strcat(szReceive, " received\r\n"); // Ausgeben von szReceive SerWrite(szReceive, strlen(szReceive)); while (1); // niemals vergessen! return 0; }
Habe das Proggi nicht getestet! Es macht so auch noch keinen Sinn ohne eine while Schleife. Der Kode ist nur zur Verdeutlichung.
Ist es jetzt klar?
O.







Zitieren

Lesezeichen