亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? davinci_evm.c

?? MSP430和GPS的接口程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
  str[2] = 0;

  for(x = 0; x < 2; x++)
  {
    if( str[x] > 9 )
    {
      str[x] += 0x37;
    }
    else
    {
      str[x] += 0x30;
    }
  }

  txStr(str);
}


//
// UART Function - transmit word data as ASCII characters
//
void txWord(unsigned int word)
{
  txByte(word >> 8);
  txByte(word & 0x00ff);
}

#endif /* FET_UART_DEBUG */


//
// Main Program Loop
//
void main(void)
{
  unsigned char P2State;
  unsigned char P3State;
  unsigned char stateChange;

  // Initialize System
  sysInit();

#ifdef FET_UART_DEBUG
  txStr("\x1b[2JDaVinci ");
#endif

  prevP2State = (P2IN & P2_MASK);           // Get current P2 state
  prevP3State = (P3IN & P3_MASK);           // Get current P3 state

  // Main Program Loop

  // Enable global interrupts
  _BIS_SR(GIE);  // MW

  for(;;)
  {
    if( !Event )
    {
      // Enter low-power mode 0 with interrupts enabled
// MW      _BIS_SR(LPM0_bits + GIE);

      _NOP();
    }

    if( Event & EVENT_TIMEOUT )             // Check for timeout event
    {
      Event &= ~EVENT_TIMEOUT;              // Clear event flag

// MW     P1OUT &= ~0x02;                       // Set P1.1 to low
// MW FLAG      P1OUT |= 0x02;                        // Set P1.1 high (deassert DaVinci interrupt)
// MW FLAG      i2cIndex = 0;                         // Reset buffer index
// MW FLAG      resetSWI2C();                         // Reset I2C
      resetIR();                            // Reset IR
// MW FLAG      IE2 |= URXIE0;                        // Enable USART0 RX interrupt
// MW RTC      IE1 |= WDTIE;                         // Enable WDT interrupt
    }

    if( Event & EVENT_RTC )                 // Check for RTC event
    {
      Event &= ~EVENT_RTC;                  // Clear event flag
      incrementSeconds();                   // Increment seconds
    }

    if( Event & EVENT_CHK_PINS )            // Check I/O pin state event
    {
      Event &= ~EVENT_CHK_PINS;             // Clear event flag
      stateChange = 0;                      // Clear flag

      P2State = (P2IN & P2_MASK);           // Read P2
      P3State = (P3IN & P3_MASK);           // Read P3

      if( P2State != prevP2State )          // Check for P2 input state change
      {
        stateChange = 1;                    // Set state change flag
      }

      if( P3State != prevP3State )         // Check for P3 input state change
      {
        stateChange = 1;                    // Set state change flag
      }

      prevP2State = (P2State & P2_MASK);    // Save current P2 input state
      prevP3State = (P3State & P3_MASK);    // Save current P3 input state

      if( stateChange )
      {
        EventFlag = EVENT_STATE_CHG;        // Set event flag
        interruptMaster();                  // Interrupt master I2C device
      }
    }

    if( Event & EVENT_IR )                  // Check for IR event flag
    {
      Event &= ~EVENT_IR;                   // Clear event flag

#ifdef IR_LED_DEBUG
      P2OUT ^= 0x18;                        // Toggle LEDs
#endif

#ifdef FET_UART_DEBUG
      txStr("\r\n");
      txStr("Raw: 0x");
      txWord(IRData & 0x3FFF);
      txStr(", Addr: 0x");
      txWord((IRData & 0x07C0) >> 6);
      txStr(", Data: 0x");
      txWord(IRData & 0x003F);
#endif /* FET_UART_DEBUG */

// MW      i2cIndex = 0;                         // Reset buffer index
// MW      resetSWI2C();                         // Reset I2C
      EventFlag = EVENT_IR_DATA;            // Set event flag
      interruptMaster();                    // Interrupt master I2C device
    }
  }
}


//
// UART0 RX Interrupt Service Routine
//
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_Rx_ISR(void)
{
  while( !(IFG2 & UTXIFG0) ){}              // Is USART0 TX buffer ready?
  TXBUF0 = RXBUF0 + 1;                      // Increment RXBUF0, copy to TXBUF0
}


//
// Watchdog Timer (WDT) Interrupt Service Routine
//
//   Interrupts once every 250 msec
//
#pragma vector=WDT_VECTOR
__interrupt void wdt_ISR(void)
{
  static unsigned char cnt;

  if( (cnt++ & 0x3) == 0 )
  {
    Event |= EVENT_RTC;                     // Set RTC event flag
  }

  Event |= EVENT_CHK_PINS;                  // Set check pins event

// MW  LPM0_EXIT;                                // Exit LPM0
}


//
// Timer_A0 Interrupt Service Routine
//
#pragma vector=TIMERA0_VECTOR
__interrupt void timerA0_ISR(void)
{
// MW  LPM0_EXIT;                                // Exit LPM0
}


//
// Timer_A Interrupt Vector (TAIV) Handler
//
#pragma vector=TIMERA1_VECTOR
__interrupt void timerA_ISR(void)
{
  switch( TAIV )
  {
    case  2:                                // TA1 CCIFG
      if( TACCTL1 & CAP )                   // Is TA1 in capture mode?
      {                                     // Yes, capture mode
        TACCTL2 = 0;                        // Disable TA2
        if( IRBit == 14 )
        {
// MW FLAG         SDA_IE &= ~SDA_PIN;               // Disable SDA interrupt
// MW FLAG         SCL_IE &= ~SCL_PIN;               // Disable SCL interrupt
// MW FLAG         IE2 = 0;                          // Disable interrupts
// MW FLAG         IE1 = 0;                          // Disable interrupts
        }

        // Configure TA1 to measure 3/4 IR bit time
        TACCR1 += BIT_75;                   // Add 3/4 IR bit time
        TACCTL1 = CCIE;                     // Compare mode, enable interrupt
      }
      else                                  // No, compare mode
      {
        if( --IRBit == 0 )                  // Dec IR bit cnt, is 0?
        {                                   // Yes, IR bit cnt = 0
          TACCTL1 = 0;                      // Stop TA1
          TACCTL2 = 0;                      // Stop TA2
          IRBuff[irWriteIndex++] = IRData;  // Save IR data
          irWriteIndex &= (IRBUFFLEN-1);    // Reset index
          Event |= EVENT_IR;                // Set IR event flag
// MW           LPM0_EXIT;                        // Exit LPM0
        }
        else                                // No, IR bit cnt > 0
        {
          IRData <<= 1;                     // Left shift IRData

          if( TACCTL1 & SCCI )              // Is SCCI bit set?
          {                                 // Yes, SCCI is set
            IRData |= 1;                    // Set LSB to 1
          }

          // Set TA2 to generate a timeout if next IR packet edge
          // is NOT captured within 1/2 I/R bit time
          TACCR2 = TACCR1 + BIT_50;         // Add 1/2 IR bit time to TACCR1,
                                            // load into TACCR2
          TACCTL2 = CCIE;                   // Compare mode, enable interrupt

          // Configure TA1 to capture IR data packet edge
          TACCTL1 = CAP + CM1 + CM0 + SCS + CCIE;
                                            // Capture mode, CCI1A input,
                                            // both edges, synchronous,
                                            // enable interrupt
        }
      }
      break;

    case  4:                                // TA2 CCIFG
      TACCTL1 = 0;                          // Timeout, stop TA1
      TACCTL2 = 0;                          // Timeout, stop TA2
      resetIR();                            // MW FLAG
// MW FLAG      Event |= EVENT_TIMEOUT;               // Set timeout event flag
// MW      P3OUT ^= 0x08;                        // DEBUG
// MW      LPM0_EXIT;                            // Exit LPM0
      break;

    case 10:                                // TA IFG
      break;
  }
}



//
// Read message from I2C Master
//
//   I2C Message Format:
//     Required Byte 1 = Msg Length (includes length and msg ID bytes)
//     Required Byte 2 = Msg Identifier
//     Optional Byte 3 = Data byte 0
//     .
//     .
//     .
//     Optional Byte N = Data byte N-1
//
//     I2C message length = number of data bytes + 2
//
//   +--------+--------+--------+-----+----------+
//   | Length | Msg Id | Data 0 | ... | Data N-1 |
//   +--------+--------+--------+-----+----------+
//
void i2cReadMsg(unsigned char i2cData)
{
  static unsigned char i2cLen;

  I2CRxBuff[i2cIndex++] = i2cData;             // Save I2C data

  if( i2cIndex == 1 )
  {
    i2cLen = i2cData;                       // First byte contains msg length
  }
  else if( i2cLen == i2cIndex )             // Msg length includes Length and
  {                                         // Msg Id bytes along with data
    // Process I2C message
    (i2cMsgTbl[I2CRxBuff[1]])();

    return;
  }

  i2cIndex &= (I2CMSGLEN-1);                // Prevent buffer overflow
}


//
// Get Real-Time Clock (RTC) Parameters
//
void getRTC(void)
{
  I2CTxBuff[0] = 9;                         // Set length
  I2CTxBuff[1] = GET_RTC_PARAMS;            // Set msg ID
  I2CTxBuff[2] = (year & 0x00ff);           // Set year LSB
  I2CTxBuff[3] = (year >> 8);               // Set year MSB
  I2CTxBuff[4] = month;                     // Set month
  I2CTxBuff[5] = day;                       // Set day
  I2CTxBuff[6] = hour;                      // Set hour
  I2CTxBuff[7] = minute;                    // Set minute
  I2CTxBuff[8] = second;                    // Set second
}


//
// Set RTC Parameters
//
void setRTC(void)
{
  year = I2CRxBuff[3];                      // Get year MSB
  year <<= 8;
  year |= I2CRxBuff[2];                     // Get year LSB
  month = I2CRxBuff[4];                     // Get month
  day = I2CRxBuff[5];                       // Get day
  hour = I2CRxBuff[6];                      // Get hour
  minute = I2CRxBuff[7];                    // Get minute
  second = I2CRxBuff[8];                    // Get second
}


//
// Get IR Data
//
void getIRData(void)
{
  unsigned char index = 2;

  while( index < (I2CTXBUFFLEN-2) )
  {
    if( irReadIndex == irWriteIndex )
    {
      break;
    }

    I2CTxBuff[index++] = (IRBuff[irReadIndex] & 0x00ff);
    I2CTxBuff[index++] = (IRBuff[irReadIndex++] >> 8);
    irReadIndex &= (IRBUFFLEN-1);           // Reset index
  }

  I2CTxBuff[0] = index;                     // Set msg length
  I2CTxBuff[1] = SEND_IR_DATA;              // Set msg ID
}


//
// Get Last IR Value
//
void getIRVal(void)
{
  unsigned char index;

  if( irWriteIndex == 0 )
  {
    index = IRBUFFLEN-1;
  }
  else
  {
    index = irWriteIndex - 1;
  }

  I2CTxBuff[0] = 4;                         // Set msg length
  I2CTxBuff[1] = SEND_IR_DATA;              // Set msg ID
  I2CTxBuff[2] = (IRBuff[index] & 0x00ff);
  I2CTxBuff[3] = (IRBuff[index] >> 8);
}


//
// Get port pin input signal state
//
void getInputState(void)
{
  I2CTxBuff[0] = 4;                         // Set length
  I2CTxBuff[1] = GET_INPUT_STATE;           // Set msg ID
  I2CTxBuff[2] = (P2IN & P2_MASK);          // Set P2 input state
  I2CTxBuff[3] = (P3IN & P3_MASK);          // Set P3 input state
}


//
// Get event
//
void getEvent(void)
{
  I2CTxBuff[0] = 3;                         // Set length
  I2CTxBuff[1] = GET_EVENT;                 // Set msg ID
  I2CTxBuff[2] = EventFlag;                 // Get event

  EventFlag = 0;                            // Reset event flag
}


//
// Set port pin output signal state
//
void setOutputState(void)
{
//  P2OUT = I2CRxBuff[2];                        // Set P2 output state
  P3OUT = (I2CRxBuff[3] & 0x9) | (P3OUT & ~0x9); // Set P3 output state (masked for P3.0 and P3.3)
}

//
// Interrupt Master I2C Device
//
void interruptMaster(void)
{
  int i;
  TACCR2 = TAR + INTR_TIMEOUT;              // Set timeout
  TACCTL2 = CCIE;                           // Compare mode, enable interrupt

// MW  P1OUT |= 0x02;                            // Set P1.1 output high
  P1OUT &= ~0x02;                           // Pull DaVinci interrupt low
  for (i = 0; i < 2; i++);
  P1OUT |= 0x02;                            // Pull DaVinci interrupt high
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产日韩91久久久久久| 国产伦精品一区二区三区免费| 中文字幕一区二区三区在线观看 | 午夜精品视频一区| 色噜噜夜夜夜综合网| 日韩欧美亚洲国产另类| 亚洲精品一卡二卡| 久久97超碰国产精品超碰| 国产成人午夜高潮毛片| 欧美色综合久久| 一区二区三区精品在线| 国产91丝袜在线播放九色| 欧美一级艳片视频免费观看| 亚洲视频中文字幕| 国产精品91xxx| 日韩三级在线观看| 色综合久久中文综合久久牛| 国产成人亚洲综合a∨猫咪| 欧美一区二区精品久久911| 欧美国产1区2区| 在线一区二区观看| 久久精品国产秦先生| 国产亚洲美州欧州综合国| 成人精品鲁一区一区二区| 亚洲国产精品视频| 欧美zozozo| 偷拍与自拍一区| 欧美性大战xxxxx久久久| 麻豆一区二区在线| 一区二区三区av电影| 日韩限制级电影在线观看| 奇米影视一区二区三区| 久久亚洲综合色| 色哟哟欧美精品| 亚洲电影激情视频网站| 国产精品卡一卡二| 久久伊99综合婷婷久久伊| 在线播放国产精品二区一二区四区| 国产一区二区三区四区五区入口| 一区二区三区在线不卡| 亚洲欧美日韩在线播放| 亚洲人成网站影音先锋播放| 中文字幕免费不卡在线| 欧美精品日韩综合在线| 欧美亚洲免费在线一区| 99久久er热在这里只有精品66| 久久99国产乱子伦精品免费| 亚洲精选在线视频| 国产精品久久二区二区| 日韩欧美国产一二三区| 精品一区二区三区影院在线午夜| 日韩欧美一二区| 欧美激情一区二区在线| 久久精品亚洲麻豆av一区二区 | 视频一区视频二区中文字幕| 天堂影院一区二区| 精品一区二区免费在线观看| 裸体歌舞表演一区二区| 精品一区二区免费| 国产一区福利在线| 91亚洲精品久久久蜜桃网站| 91久久奴性调教| 久久蜜桃av一区精品变态类天堂| 久久久亚洲精华液精华液精华液| 亚洲天堂av一区| 亚洲不卡av一区二区三区| 国产在线精品视频| 欧美丰满高潮xxxx喷水动漫| 91精品福利在线一区二区三区 | 97久久超碰国产精品| 亚洲国产成人自拍| 国产成人夜色高潮福利影视| 欧美一级片在线| 毛片av一区二区三区| 日韩欧美国产系列| 国产一区在线不卡| 久久久综合网站| 风间由美一区二区av101| 欧美一区二区福利在线| 毛片av一区二区三区| 久久亚洲一区二区三区四区| 国产乱色国产精品免费视频| 日韩亚洲国产中文字幕欧美| 久久91精品国产91久久小草| 久久久久久久性| 风间由美一区二区av101| 国产精品美女久久久久久久| 91在线精品一区二区| 亚洲国产成人av| 精品国产91久久久久久久妲己 | 日韩福利视频导航| 国产亚洲欧美激情| 精品卡一卡二卡三卡四在线| 国产精品一卡二卡| 亚洲另类春色校园小说| 欧美久久一二三四区| 懂色一区二区三区免费观看| 亚洲欧美日韩电影| 精品国产乱码久久久久久老虎| 波多野结衣中文一区| 免费av网站大全久久| 久久精品欧美一区二区三区不卡| 97久久久精品综合88久久| 蜜臀av一级做a爰片久久| 一区二区三区中文在线观看| 欧美电影免费观看高清完整版在 | 久久综合999| 成人av在线影院| 狠狠狠色丁香婷婷综合激情| 亚洲一区二区三区四区在线| 国产精品色婷婷| 久久亚洲精华国产精华液| 2017欧美狠狠色| 久久夜色精品国产噜噜av| 欧美大尺度电影在线| 欧美日韩免费观看一区二区三区| 91丝袜美女网| 在线看国产一区| 91精品国产高清一区二区三区蜜臀| 欧美性淫爽ww久久久久无| 欧美日韩和欧美的一区二区| 欧美午夜一区二区| 欧美精品一区二区三区一线天视频| 日韩欧美在线综合网| 国产欧美一区视频| 亚洲人成亚洲人成在线观看图片| 一区二区三区在线影院| 天天影视涩香欲综合网| 国产精品羞羞答答xxdd| 亚洲影视在线播放| 中文字幕亚洲成人| 欧美卡1卡2卡| 欧美最猛性xxxxx直播| 免费观看30秒视频久久| 国产精品久久久久婷婷二区次| 欧美在线观看18| 在线精品亚洲一区二区不卡| 成人免费的视频| 在线不卡中文字幕| 久久久久99精品一区| 亚洲欧美成aⅴ人在线观看| 日韩高清不卡在线| aaa欧美日韩| 欧美日韩国产高清一区二区| 欧美日韩国产色站一区二区三区| 欧美成人艳星乳罩| 亚洲午夜av在线| 成人精品小蝌蚪| 91精品午夜视频| 亚洲一区二区av在线| 91麻豆6部合集magnet| 欧美一级片在线观看| 一区二区三区中文在线观看| 国内外精品视频| 91麻豆精品国产自产在线观看一区 | 色偷偷久久一区二区三区| 91精品国产乱码| 日韩有码一区二区三区| 欧美性色黄大片手机版| 亚洲成人一二三| 8v天堂国产在线一区二区| 成人欧美一区二区三区白人| 国产精品1024| 国产精品区一区二区三区 | 亚洲福利电影网| 日本韩国一区二区| 亚洲一区二区三区自拍| 7777精品伊人久久久大香线蕉完整版 | 91美女在线看| 亚洲欧美日韩中文字幕一区二区三区| 91色婷婷久久久久合中文| 一区二区三区欧美激情| 欧美综合一区二区三区| 亚洲v中文字幕| 中文字幕第一区二区| 91丨porny丨在线| 日一区二区三区| 日本一二三不卡| 91精品国产黑色紧身裤美女| 久久69国产一区二区蜜臀| 久久久精品人体av艺术| 色综合久久久久综合体| 日韩高清一级片| 五月天一区二区| 国产精品久久久久影院| 欧美午夜不卡在线观看免费| 国内精品伊人久久久久影院对白| 中文字幕五月欧美| 精品国产乱码久久久久久闺蜜| 色婷婷av一区二区三区gif| 日本不卡一区二区三区高清视频| 国产欧美日本一区二区三区| 欧美日韩国产区一| 欧美日韩高清不卡| 欧美网站一区二区| 欧美在线啊v一区| 色综合久久久久综合体桃花网| 成人h精品动漫一区二区三区| 久久国产精品区| 三级在线观看一区二区|