{{category 電子工作}} !!!現象 *PSoC の USBFS デバイスのサンプル HID マウスのコードを参考に HID デバイスを作成すると、接続したまま PC 再起動をすると HID デバイスが正常に動作しない !!!対処 ・バスリセットがかかったら再コンフィグレーションされるまで待つべき ・while (!USBFS_1_bGetEPAckState(1);のように待つと,ACKを返す前  (EP1にデータが入った状態)でバスリセットがかかるとEP1はクリア  されて,次にCPUが読みにきたらACKではなくNAKが返るからフラグが  立たないままになる [出典] 2ちゃんねる:電気・電子板【新時代!】PSoC スレ 其の八  http://science6.2ch.net/test/read.cgi/denki/1245848449/377-408 [参考]PSoC Developer の該当しそうな記事 http://www.psocdeveloper.com/forums/viewtopic.php?f=16&t=4378 [類似]PSoC3 USBUART デバイスが再起動時におかしくなる問題 !!!メイン部のコード修正例 [出典] 2ちゃんねる:電気・電子板【新時代!】PSoC スレ 其の八  http://science6.2ch.net/test/read.cgi/denki/1245848449/406 のコード void main() {  M8C_EnableGInt;  USBFS_1_Start(0, USB_5V_OPERATION);  while(1) {    while(!USBFS_1_bGetConfiguration());    USBFS_1_LoadInEP(1, abMouseData, 3, USB_NO_TOGGLE);    while(USBFS_1_bGetConfiguration())    {      if (USBFS_1_bGetEPAckState(1)) {         USBFS_1_LoadInEP(1, abMouseData, 3, USB_TOGGLE);         if(i==128)            abMouseData[1] = 0x05;         else if(i==255)            abMouseData[1] = 0xFB; //Start moving the mouse to the left         i++;       }     }   } }