V-USB IOExpander

#3059464
Lesenswert?

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.
#3059534
Lesenswert?

Stefan S. schrieb:
>
1
replyBuf
 sollte vom Typ
1
char *
 sein. Ist aber
1
 static
2
> uchar[]
.

Änder ich das jetzt auf char, bekomme ich das:

main.c: In function 'usbFunctionSetup':
main.c:169: warning: pointer targets in assignment differ in signedness

Also nicht gut, ändere ich jetzt das ganze in usbdrv.c brauche ich gar 
nicht mehr weiter
machen. Dann müsste ich denn vollständigen V-USB Code ändern.

Gibt es keine andere Möglichkeit?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren