Fórum témák
» Több friss téma |
Cikkek » PIC 18F4550 USB útmutató II PIC 18F4550 USB útmutató II
Szerző: Gory, idő: Jún 8, 2007, Olvasva: 25914, Oldal olvasási idő: kb. 1 perc
Ez a makró arra való, hogy megnézzük,
hogy CDC class kész-e adatfogadásra. Megjegyzés: Ne hívjuk a függvényt blokkoló módon (később lesz róla szó pl., while(!mUSBUSARTIsTxTrfReady()). Szintaxis: BOOL mUSBUSARTIsTxTrfReady(void) Előfeltétel: - Input: - Output: BOOL Ha a firmware driver kész fogadni az új adatot hogy kiküldje az USB-re, akkor a visszatérési érték ‘1’, egyébként ‘0’. Mellékhatás: - Példa:
void example_1(void)
Az USB-n beérkezett adatokat teszi a paraméterként megadott területre. Ez egy nem blokkoló függvény, azaz ha nincs olvasnivaló adat, akkor nem vár amíg érkezik valami, hanem visszatér 0-val. Megjegyzés: Ha a ténylegesen beérkezett bájtok száma nagyobb a várt bájtok számánál, akkor a buffer területre csak a várt számú bájtot teszi át. Ha pedig kevesebb bájtot kapunk, mint amennyit vártunk, akkor a ténylegesen beérkezett bájtokat teszi a bufferbe. Szintaxis: byte getsUSBUSART(char *buffer, byte len) Előfeltétel: A len argumentum értéke legfeljebb csak a vételre beállított endpoint által fogadható bájtok értéke lehet. Ez az érték a CDC_BULK_OUT_EP_SIZE változóban az usbcfg.h fájlban. CDC_BULK_OUT_EP_SIZE lehet 8, 16, 32 vagy 64 bytes.
A buffer argumentum által mutatott
terület legalább akkora kell hogy legyen mint a len argumentumban meg van adva. buffer Pointer a beérkezett bájtok helyére. len Várt bájtok száma. Output: byte A buffer területre ténylegesen bemásolt bájtok száma Mellékhatás: A cdc_rx_len publikus változó értéke felülíródik az aktuálisan a bufferterületre másolt bájtok. (A cdc_rx_len változó értékét az mCDCGetRxLength() makróval is megkaphatjuk.) Példa:
char input_buffer[64];
void example_2(void)
Arra használjuk, hogy kinyerjük a legutolsó getsUSBUSART függvényhívás által buffer területre másolt bájtok számát. Szintaxis: byte mCDCGetRxLength(void) Előfeltétel: - Input: - Output: byte A kérdéses bájtok száma. Mellékhatás: - Példa:
char input_buffer[64]; A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |