Ich bin gerade dabei einen USB-IO Expander aufzubauen.
Als Kern benutze ich einen ATMega 644 über die I2C Schnittstelle werden
4 IO Expander
vom Typ PCF8574 angesteuert. 1 Zusätzlicher PCF8574 ist mit eine
LC-Display gekoppelt,
(16 Zeichen und 2 Zeilen) damit kann man vom Host einen Text an das LCD
anzeigen lassen.
Das Ausgeben des Textes sowie das Setzen der IO Ports habe ich schon am
laufen und
funktioniert prima.
Jetzt habe ich folgendes Problem:
Natürlich will ich auch werte vom PCF8574 einlesen. Das funktioniert
auch ganz gut, was aber nicht funktioniert ist die Übertragung des
Wertes zum Host.
Hier mal die Configuration:
....
static uchar replyBuf[16] = "Test";
....
uchar tmp;
....
case R_PORT_A:
i2c_rep_start(0x41);
tmp=i2c_readNak();
i2c_stop();
itoa(tmp,replyBuf,10);
usbMsgPtr = replyBuf;
return sizeof(replyBuf);
}
...
...
Wenn ich die Daten von einem PCF8574 auslese (tmp), und den den tmp Wert
auf einen anderen PCF8574 schreibe klappt alles prima. Will ich aber den
tmp Wert im replyBuf ablegen (wie oben) dann bekomme ich beim
Compilieren immer die Fehlermeldung:
main.c:168: warning: pointer targets in passing argument 2 of 'itoa'
differ in signedness
Was mache ich hier falsch.