<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          USB入門總結(jié)

          作者: 時(shí)間:2012-04-18 來(lái)源:網(wǎng)絡(luò) 收藏
          ceronous status variable initialization
          ------------------------------------------------------------*/
          usb_status.configuration = NULL;
          usb_status.remote_wakeup = 0;
          usb_status.address = 0;
          usb_status.dvcstate = DEFAULT_STATE; /* Device state :DEFAULT */
          usb_status.stall_req = 0;
          #ifdef Debug
          test[conters]='!';
          conters++;
          #endif

          /*------------------------------------------------------------
          Callback to application layer
          ------------------------------------------------------------*/
          (*usb_status.callback)();
          }
          else if (SUSPENDED_INT())
          { /* suspended state */
          /* for Rev.1.1
          Transit to suspended state after detect the line has kept idle over 3msec.
          After resume detected, end suspend state in 3msec to be able to respond
          the host request.
          */
          CLR_SUSPENDED_STATE();
          #ifdef Debug
          test[conters]='@';
          conters++;
          #endif

          }

          else if (AWAKE_INT())
          { /* Deveice awake state */
          /* AWAKE procedure */

          CLR_AWAKE_STATE(); /* Request clear */
          #ifdef Debug
          test[conters]='#';
          conters++;
          #endif

          }
          else if (_BUSRESET_DES_INT())
          { /* USB bus reset deassert */
          /* Procedure for USB bus reset de-assert */

          CLR_BUS_RESET_DES_STATE(); /* Request clear */
          #ifdef Debug
          test[conters]='$';
          conters++;
          #endif

          }

          else if (SOF_INT())
          { /* SOF interrupt status */
          CLR_B_SOF_STATE();
          #ifdef Debug
          test[conters]='%';
          conters++;
          #endif
          /* SOF interrupt status clear */
          } /* SOF interrupt status */

          if (SETUP_RDY_INT())
          { /* setup ready */
          #ifdef Debug
          test[conters]='^';
          conters++;
          #endif

          read_Device_Requests();
          }

          else if(EP1_PKTRDY_INT())
          { /* EP1 packet ready */
          read_FIFO(EP1);
          }
          else if (EP2_PKTRDY_INT())
          { /* EP2 packet ready */

          write_FIFO(EP2);
          }

          else if (EP0_RXPKTRDY_INT())
          { /* EP0 receive packet ready */
          read_FIFO(EP0RX);
          }
          else if (EP0_TXPKTRDY_INT())
          { /* EP0 transmit packet ready */
          write_FIFO(EP0TX);
          }

          }
          計(jì)錄的結(jié)果在變量查看中顯示如下:

          首先我解釋一下,這段程序是我在做USB設(shè)備時(shí)的中斷函數(shù)。主



          關(guān)鍵詞: USB 入門總結(jié)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();