 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
jvolk Član



Pridružen-a: Ned 05 Mar 2006 1:14 Prispevkov: 737 Aktiv.: 3.13 Kraj: okolica Divače
|
Objavljeno: Tor Nov 18, 2008 11:54 am Naslov sporočila: HID in daljši InReport |
|
|
Pozdrav.
Igram se s LPC2148, in bi želel poslat več podatkov v enem paketu. Konfiguracijo USBja sem že uspel predelati tako, da mi program na PCju zazna, da imam 4 bajte dolg podatek.
Na strani mikrokontrolerja imam takole kodo.
Koda:
Koda: |
void GetInReport (void) {
char adcs[] = {0x07,0x02,0x03,0x00};
InReport = *adcs;
}
|
Ko stvar zaženem dobim na PC strani "0x07 0x00 0x00 0x00", se pravi pošlje samo prvi bajt.
Ugotovil sem že, da se podatki ne prenašajo čez funkcije USB_EndPoint1 in USB_Configure_Event. Vsebujejo naslednjo kodo:
Koda: |
if (USB_Configuration) { /* Check if USB is configured */
GetInReport();
USB_WriteEP(0x81, &InReport, sizeof(InReport));
}
|
V hiduser.c je funkcija HID_GetReport. V njej je tudi tole:
Koda: |
GetInReport();
EP0Buf[0] = InReport;
EP0Buf[1] = 0x33; //to sem sam dodal
break;
|
Tisto, kar sem dodal tam deluje.
A lahko tam napolnim moje podatke, ali je kaka bolj elegantna rešitev? |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70643.30
|
Objavljeno: Tor Nov 18, 2008 4:10 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.59 Kraj: Trzic
|
Objavljeno: Sre Nov 19, 2008 8:55 am Naslov sporočila: Re: HID in daljši InReport |
|
|
jvolk je napisal/a: |
Pozdrav.
Igram se s LPC2148, in bi želel poslat več podatkov v enem paketu. Konfiguracijo USBja sem že uspel predelati tako, da mi program na PCju zazna, da imam 4 bajte dolg podatek.
Na strani mikrokontrolerja imam takole kodo.
Koda:
Koda: |
void GetInReport (void) {
char adcs[] = {0x07,0x02,0x03,0x00};
InReport = *adcs;
}
|
Ko stvar zaženem dobim na PC strani "0x07 0x00 0x00 0x00", se pravi pošlje samo prvi bajt.
Ugotovil sem že, da se podatki ne prenašajo čez funkcije USB_EndPoint1 in USB_Configure_Event. Vsebujejo naslednjo kodo:
Koda: |
if (USB_Configuration) { /* Check if USB is configured */
GetInReport();
USB_WriteEP(0x81, &InReport, sizeof(InReport));
}
|
V hiduser.c je funkcija HID_GetReport. V njej je tudi tole:
Koda: |
GetInReport();
EP0Buf[0] = InReport;
EP0Buf[1] = 0x33; //to sem sam dodal
break;
|
Tisto, kar sem dodal tam deluje.
A lahko tam napolnim moje podatke, ali je kaka bolj elegantna rešitev? |
Si popravil, da je InReport array s 4 elementi? _________________ Lp,
Matevž |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 7 dni
Powered by phpBB © 2001, 2005 phpBB Group
|