¹Ù·Î Àü °Á¿¡ ¾÷µ¥ÀÌÆ®ÇÑ unifull_driver_v1.1¿¡ ¹ö±×°¡ ¹ß°ßµÇ¾î,
unifull_driver_v1.2·Î »õ·Î ¾÷µ¥ÀÌÆ®½ÃÄÑ ³õ¾ÒÀ¸´Ï
ÁøÀÛ¿¡ ¾÷µ¥ÀÌÆ® ÇØ¹ö¸° ÇàÀÚµéÀº ¾ó·· µ¹¾Æ°¡¼ »õ·Î ¾÷µ¥ÀÌÆ® ÇϽöó. -.-;;;
¿À´Ã ÇØº¼ ³»¿ëÀº Data Stage¸¦ Ȱ¿ëÇÑ µ¥ÀÌÅÍ Àü¼ÛÀÌ´Ù.
ÀÌÀü±îÁö´Â Setup StageÀÇ Data packet¿¡¸¸ µ¥ÀÌÅ͸¦ ½Ç¾î º¸³»·Á´Ù º¸´Ï
Çѹø¿¡ º¸³¾ ¼ö ÀÖ´Â µ¥ÀÌÅÍÀÇ Å©±â°¡ 8 Byte·Î Á¦ÇÑ µÇ¾ú¾ú´Ù.
±× Áß¿¡ »ç½Ç»ó ¿ì¸®°¡ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº 5 Byte»ÓÀÌ ¾ÈµÈ´Ù.
( bRequest(1), wValue(2), wIndex(2) : ¡°Setup Data Ȱ¿ëÇϱ⡱ÀÇ Áß°£ºÎºÐ Ç¥ ÂüÁ¶ )
Çѹø¿¡ 5 Byte¹Û¿¡ º¸³»Áö ¸øÇÑ´Ù Çϸé 200% ºÎÁ·ÇÏÁö ¾ÊÀº°¡?
µû¶ó¼ Control Transfer¿¡¼ Data Stage¸¦ Ȱ¿ëÇØ¼ Çѹø¿¡ ¸¹Àº(?) µ¥ÀÌÅ͸¦ º¸³» º¸ÀÚ.
ÀÌ ¶§ ¿Ô´Ù¸® °¬´Ù¸® ÇÏ´Â ÆÐŶµéÀ» »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

¾îÇø®ÄÉÀÌ¼Ç ÀÔÀå¿¡¼´Â ¾î¶»°Ô Ãß°¡µÈ Data Stage¿¡ µ¥ÀÌÅ͸¦ ½Ç¾î º¸³»´Â°í ÇÏ´Ï,
Unifullusr.h¿¡ ¼±¾ðµÇ¾î ÀÖ´Â CONTROL_REQUST ±¸Á¶Ã¼¿¡

¨ç¹ø¿¡´Â Data packet¿¡ ½Ç¾î º¸³¾ µ¥ÀÌÅÍÀÇ Å©±â¸¦ ³Ö¾îÁÖ°í
¨è¹ø¿¡´Â ±× µ¥ÀÌÅͰ¡ µé¾îÀÖ´Â ¹öÆÛÀÇ ÁÖ¼Ò¸¦ Àû¾î ÁØ ÈÄ¿¡
bRet = DeviceIoControl( hFile,
IOCTL_UNIFULL_DATA_DISPLAY,
pstCtlRequest, // ÀԷ¹öÆÛÀÇ ½ÃÀÛ¹øÁö
ulBufferSize, // ÀԷ¹öÆÛÀÇ Å©±â
NULL, // Ãâ·Â¹öÆÛÀÇ ½ÃÀÛ¹øÁö
0, // Ãâ·Â¹öÆÛÀÇ Å©±â
&dwBytesReturned,
NULL ); |
¿ä·¸°Ô CONTROL_REQUST ±¸Á¶Ã¼ÀÇ
ÁÖ¼Ò ( pstCtlRequest ) ¿Í
Å©±â ( CONTROL_REQUST ±¸Á¶Ã¼ Å©±â + Data Packet¿¡ ½Ç¾î º¸³¾ µ¥ÀÌÅÍ ¹öÆÛÀÇ Å©±â ) ¸¦
ÀÎÀÚ(parameter)·Î ÇØ¼ DeviceIoControlÀ» È£ÃâÇØ ÁÖ¸é µÈ´Ù.
½ÇÁ¦ ±¸ÇöÀº ¾îÇø®ÄÉÀ̼ÇÀÇ UniFullDlg.cppÀÇ OnButtonDataDisplaySend() ÇÔ¼ö¿¡ ÀÖÀ¸´Ï ÂüÁ¶ÇϽöó.
¿©·¯ °¡Áö ¿¹¿Üó¸® Äڵ尡 ¼¯¿©ÀÖ¾î¼ º¹ÀâÇÏ°Ô º¸ÀÌÁö¸¸ °ñ°ÝÀº À§¿¡ ¼³¸íÇÑ °Íó·³ °£´ÜÇÏ´Ù.
ÀÌ ¾îÇø®ÄÉÀÌ¼Ç ¿¹Á¦¿¡¼´Â
µÎ ÀÚ¸® 16Áø¼ö ¼ýÀÚµéÀ» ÀÔ·Â ¹Þ¾Æ¼ À̸¦ 1 Byte µ¥ÀÌÅ͵é·Î º¯È¯ÇÑ µÚ
À̸¦ UniFullº¸µå·Î Àü¼ÛÇØ¼
ÀÌ µ¥ÀÌÅÍ´ë·Î UniFullº¸µåÀÇ Port B¿¡ ¿¬°áµÈ LEDµéÀ» ±ôºýÀÌ°Ô ¸¸µå´Â °ÍÀÌ´Ù.
±ôºýÀÓÀÇ °£°ÝÀº wValue( CONTROL_REQUST ±¸Á¶Ã¼ÀÇ Çʵå )¿¡ ÁöÁ¤ÇØ ÁÖ¸é µÈ´Ù.
UniFull º¸µå¿¡´Â ´ÙÀ½°ú °°Àº ¿ÜºÎȸ·Î¸¦ ²Ù¸çÁֽöó.

Æß¿þ¾î¸¦ Àá±ñ »ìÆìº¸ÀÚ.

isr.cÀÇ ep0_rxdone() ÇÔ¼ö¿¡¼
ÁÖȲ»öÀ¸·Î Ç¥½ÃµÈ ºÎºÐÀÌ Default Control Transfer¿¡¼ Data Stage°¡ µþ¸° °æ¿ì¿¡ ºÐ±âÇÏ´Â °÷À̰í,
( ÀÌ ¾ÕºÎºÐ¿¡¼´Â Setup StageÀÇ Data PacketÀ» Àаí ó¸®ÇÏ´Â ÀÏÀ» ÇÑ´Ù. )
³ì»öÀ¸·Î Ç¥½ÃµÈ °÷ÀÌ Data StageÀÇ Data PacketÀÌ µµÂøÇÒ ¶§¸¶´Ù À̰÷À¸·Î ºÐ±âÇÏ´Â °÷ÀÌ´Ù.
ÀÌ ºÎºÐÀº D12 Æß¿þ¾îÀÇ FrameworkÀÇ ÀϺÎÀ̹ǷΠ¿ì¸®°¡ °Çµå¸± Çʿ䰡 ¾øÁö¸¸,
±×³É Àû¾îº»´Ù. -.-;;;
À§ÀÇ ¼³¸íÀº »çÁ·À̰í,
°£´ÜÇÏ°Ô unifull Æß¿þ¾î¸¦ ¼³¸íÇÏÀÚ¸é
¾îÇø®ÄÉÀ̼ǿ¡¼ IOCTL_UNIFULL_DATA_DISPLAY ¸¦ ³¯¸®¸é
Æß¿þ¾î¿¡¼´Â
Setup StageÀÇ data´Â DeviceRequest¶ó´Â ±¸Á¶Ã¼ º¯¼ö¿¡ ´ã¾Æ ³õ°í,
Data StageÀÇ data´Â dataBuffer¶ó´Â Çà·Ä º¯¼ö¿¡ ´ã¾Æ
unifull.cÀÇ data_display() ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀÌ´Ù.
±× µ¥ÀÌÅ͸¦ °¡Áö°í ÁöÁö°í ºº´Â ÀÏÀº
main ÇÔ¼öÀÇ while loop¾È¿¡¼ Çϰí ÀÖ´Ù.

¹¹ º°°Å ÀÖ³ª?
ŸÀ̸Ӹ¦ ÀÌ¿ëÇØ¼ µô·¹À̸¦ ÁÖ°í, dataBufferº¯¼ö¿¡ ÀúÀåµÈ µ¥ÀÌÅ͵éÀ» Çϳª¾¿ ²¨³»¿Í¼
LED·Î Ç¥½ÃÇÏ´Â °Ô ÀüºÎ´Ù.

|