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

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

?? hal.h

?? zigbee協議棧的源代碼。希望對學習zigbee的出學制有所幫助。
?? H
?? 第 1 頁 / 共 3 頁
字號:
#define INUM_T3    11
#define INUM_T4    12
#define INUM_P0INT 13
#define INUM_UTX1  14
#define INUM_P1INT 15
#define INUM_RF    16
#define INUM_WDT   17

#define NBR_OF_INTERRUPTS 18


#define INT_ENABLE_RF(on)     { (on) ? (IEN2 |= 0x01) : (IEN2 &= ~0x01); }
#define INT_ENABLE_RFERR(on)  { RFERRIE = on; }
#define INT_ENABLE_T2(on)     { T2IE    = on; }
#define INT_ENABLE_URX0(on)   { URX0IE  = on; }


#define INT_GETFLAG_RFERR() RFERRIF
#define INT_GETFLAG_RF()    S1CON &= ~0x03


#define INT_SETFLAG_RFERR(f) RFERRIF= f
#define INT_SETFLAG_RF(f)  { (f) ? (S1CON |= 0x03) : (S1CON &= ~0x03); }
#define INT_SETFLAG_T2(f)  { T2IF  = f;  }




/******************************************************************************
*******************         Common USART functions/macros   *******************
******************************************************************************/

// The macros in this section are available for both SPI and UART operation.

//*****************************************************************************

// Example usage:
//   USART0_FLUSH();
#define USART_FLUSH(num)              (U##num##UCR |= 0x80)
#define USART0_FLUSH()                USART_FLUSH(0)
#define USART1_FLUSH()                USART_FLUSH(1)

// Example usage:
//   if (USART0_BUSY())
//     ...
#define USART_BUSY(num)               (U##num##CSR & 0x01 == 0x01)
#define USART0_BUSY()                 USART_BUSY(0)
#define USART1_BUSY()                 USART_BUSY(1)

// Example usage:
//   while(!USART1_BYTE_RECEIVED())
//     ...
#define USART_BYTE_RECEIVED(num)      ((U##num##CSR & 0x04) == 0x04)
#define USART0_BYTE_RECEIVED()        USART_BYTE_RECEIVED(0)
#define USART1_BYTE_RECEIVED()        USART_BYTE_RECEIVED(1)

// Example usage:
//   if(USART1_BYTE_TRANSMITTED())
//     ...
#define USART_BYTE_TRANSMITTED(num)   ((U##num##CSR & 0x02) == 0x02)
#define USART0_BYTE_TRANSMITTED()     USART_BYTE_TRANSMITTED(0)
#define USART1_BYTE_TRANSMITTED()     USART_BYTE_TRANSMITTED(1)


/******************************************************************************
*******************  USART-UART specific functions/macros   *******************
******************************************************************************/
// The macros in this section simplify UART operation.
#define BAUD_E(baud, clkDivPow) (     \
    (baud==2400)   ?  6  +clkDivPow : \
    (baud==4800)   ?  7  +clkDivPow : \
    (baud==9600)   ?  8  +clkDivPow : \
    (baud==14400)  ?  8  +clkDivPow : \
    (baud==19200)  ?  9  +clkDivPow : \
    (baud==28800)  ?  9  +clkDivPow : \
    (baud==38400)  ?  10 +clkDivPow : \
    (baud==57600)  ?  10 +clkDivPow : \
    (baud==76800)  ?  11 +clkDivPow : \
    (baud==115200) ?  11 +clkDivPow : \
    (baud==153600) ?  12 +clkDivPow : \
    (baud==230400) ?  12 +clkDivPow : \
    (baud==307200) ?  13 +clkDivPow : \
    0  )


#define BAUD_M(baud) (      \
    (baud==2400)   ?  59  : \
    (baud==4800)   ?  59  : \
    (baud==9600)   ?  59  : \
    (baud==14400)  ?  216 : \
    (baud==19200)  ?  59  : \
    (baud==28800)  ?  216 : \
    (baud==38400)  ?  59  : \
    (baud==57600)  ?  216 : \
    (baud==76800)  ?  59  : \
    (baud==115200) ?  216 : \
    (baud==153600) ?  59  : \
    (baud==230400) ?  216 : \
    (baud==307200) ?  59  : \
  0)



//*****************************************************************************

// Macro for setting up a UART transfer channel. The macro sets the appropriate
// pins for peripheral operation, sets the baudrate, and the desired options of
// the selected uart. _uart_ indicates which uart to configure and must be
// either 0 or 1. _baudRate_ must be one of 2400, 4800, 9600, 14400, 19200,
// 28800, 38400, 57600, 76800, 115200, 153600, 230400 or 307200. Possible
// options are defined below.
//
// Example usage:
//
//      UART_SETUP(0,115200,HIGH_STOP);
//
// This configures uart 0 for contact with "hyperTerminal", setting:
//      Baudrate:           115200
//      Data bits:          8
//      Parity:             None
//      Stop bits:          1
//      Flow control:       None
//

#define UART_SETUP(uart, baudRate, options)      \
   do {                                          \
      if((uart) == 0){                           \
         if(PERCFG & 0x01){                      \
            P1SEL |= 0x30;                       \
         } else {                                \
            P0SEL |= 0x0C;                       \
         }                                       \
      }                                          \
      else {                                     \
         if(PERCFG & 0x02){                      \
            P1SEL |= 0xC0;                       \
         } else {                                \
            P0SEL |= 0x30;                       \
         }                                       \
      }                                          \
                                                 \
      U##uart##GCR = BAUD_E((baudRate),CLKSPD);  \
      U##uart##BAUD = BAUD_M(baudRate);          \
                                                 \
      U##uart##CSR |= 0x80;                      \
                                                 \
                                                 \
      U##uart##UCR |= ((options) | 0x80);        \
                                                 \
      if((options) & TRANSFER_MSB_FIRST){        \
         U##uart##GCR |= 0x20;                   \
      }                                          \
      U##uart##CSR |= 0x40;                      \
   } while(0)



//can do this via a macro
#define halSetBaud(baud) UART_SETUP(0, baud, HIGH_STOP);


// Options for UART_SETUP macro
#define FLOW_CONTROL_ENABLE         0x40
#define FLOW_CONTROL_DISABLE        0x00
#define EVEN_PARITY                 0x20
#define ODD_PARITY                  0x00
#define NINE_BIT_TRANSFER           0x10
#define EIGHT_BIT_TRANSFER          0x00
#define PARITY_ENABLE               0x08
#define PARITY_DISABLE              0x00
#define TWO_STOP_BITS               0x04
#define ONE_STOP_BITS               0x00
#define HIGH_STOP                   0x02
#define LOW_STOP                    0x00
#define HIGH_START                  0x01
#define TRANSFER_MSB_FIRST          0x80
#define TRANSFER_MSB_LAST           0x00
#define UART_ENABLE_RECEIVE         0x40


// Example usage:
//   if(UART0_PARERR())
//     ...
#define UART_PARERR(num)      ((U##num##CSR & 0x08) == 0x08)
#define UART0_PARERR()        UART_PARERR(0)
#define UART1_PARERR()        UART_PARERR(1)

// Example usage:
//   if(UART1_FRAMEERR())
//     ...
#define UART_FRAMEERR(num)    ((U ##num## CSR & 0x10) == 0x10)
#define UART0_FRAMEERR()      UART_FRAMEERR(0)
#define UART1_FRAMEERR()      UART_FRAMEERR(1)


// Example usage:
//   char ch = 'A';
//   UART1_SEND(ch);
//   ...
//   UART1_RECEIVE(ch);
#define UART_SEND(num, x)   U##num##DBUF = x
#define UART0_SEND(x)       UART_SEND(0, x)
#define UART1_SEND(x)       UART_SEND(1, x)

#define UART_RECEIVE(num, x)  x = U##num##DBUF
#define UART0_RECEIVE(x)      UART_RECEIVE(0, x)
#define UART1_RECEIVE(x)      UART_RECEIVE(1, x)

/******************************************************************************
*******************      Power and clock management        ********************
*******************************************************************************

These macros are used to set power-mode, clock source and clock speed.

******************************************************************************/

// Macro for getting the clock division factor
#define CLKSPD  (CLKCON & 0x07)

// Macro for getting the timer tick division factor.
#define TICKSPD ((CLKCON & 0x38) >> 3)

// Macro for checking status of the crystal oscillator
#define XOSC_STABLE (SLEEP & 0x40)

// Macro for checking status of the high frequency RC oscillator.
#define HIGH_FREQUENCY_RC_OSC_STABLE    (SLEEP & 0x20)


// Macro for setting the 32 KHz clock source
#define SET_32KHZ_CLOCK_SOURCE(source) \
   do {                                \
      if( source ) {                   \
         CLKCON |= 0x80;               \
      } else {                         \
         CLKCON &= ~0x80;              \
      }                                \
   } while (0)

// Where _source_ is one of
#define CRYSTAL 0x00
#define RC      0x01

// Macro for setting the main clock oscillator source,
//turns off the clock source not used
//changing to XOSC will take approx 150 us
#define SET_MAIN_CLOCK_SOURCE(source) \
   do {                               \
      if(source) {                    \
        CLKCON |= 0x40;               \
        while(!HIGH_FREQUENCY_RC_OSC_STABLE); \
        if(TICKSPD == 0){             \
          CLKCON |= 0x08;             \
        }                             \
        SLEEP |= 0x04;                \
      }                               \
      else {                          \
        SLEEP &= ~0x04;               \
        while(!XOSC_STABLE);          \
        asm("NOP");                   \
        CLKCON &= ~0x47;              \
        SLEEP |= 0x04;                \
      }                               \
   }while (0)




/*
#### RADIO Support
*/

#define STOP_RADIO()        ISRFOFF;

// RF interrupt flags
#define IRQ_RREG_ON         0x80
#define IRQ_TXDONE          0x40
#define IRQ_FIFOP           0x20
#define IRQ_SFD             0x10
#define IRQ_CCA             0x08
#define IRQ_CSP_WT          0x04
#define IRQ_CSP_STOP        0x02
#define IRQ_CSP_INT         0x01

// RF status flags

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美不卡| 欧美一级久久久久久久大片| 国产制服丝袜一区| 日本中文字幕一区二区有限公司| 亚洲r级在线视频| 亚洲成a人片在线观看中文| 亚洲国产精品自拍| 日韩精品1区2区3区| 午夜精品久久久久久久久久久| 亚洲精品老司机| 亚洲国产精品久久人人爱| 三级久久三级久久| 免费精品99久久国产综合精品| 奇米影视在线99精品| 久久精品国产成人一区二区三区 | 中文字幕综合网| 亚洲欧美视频在线观看视频| 亚洲精品成人天堂一二三| 亚洲成av人影院| 久久精品噜噜噜成人av农村| 国产在线视频精品一区| 99久久精品国产精品久久| 欧美曰成人黄网| 欧美电视剧免费全集观看| 国产日韩欧美一区二区三区乱码| 亚洲欧洲制服丝袜| 日韩av不卡在线观看| 国产精品一品视频| 色94色欧美sute亚洲线路一ni | 国产乱子轮精品视频| 成人激情av网| 欧美日韩国产电影| 日本一区二区三区国色天香 | 老司机精品视频线观看86 | 五月天中文字幕一区二区| 久久成人羞羞网站| 91在线视频18| 日韩你懂的在线观看| 国产精品毛片久久久久久久| 午夜激情一区二区三区| 成人免费视频一区二区| 欧美疯狂性受xxxxx喷水图片| 国产三级欧美三级日产三级99| 亚洲综合色噜噜狠狠| 国产成人亚洲综合a∨婷婷 | 亚洲天堂久久久久久久| 秋霞av亚洲一区二区三| 91丝袜美腿高跟国产极品老师 | 国产欧美日韩精品在线| 一区二区国产视频| 成人黄色在线看| 欧美成人官网二区| 无码av免费一区二区三区试看 | 国产亚洲美州欧州综合国| 亚洲成人综合网站| 91丨porny丨最新| 久久综合久久久久88| 亚洲香蕉伊在人在线观| 91免费视频观看| 国产精品久久久久久久久免费桃花| 美国三级日本三级久久99| 欧美三级中文字幕| 亚洲欧美色图小说| 97久久超碰精品国产| 国产亚洲欧洲一区高清在线观看| 美女视频一区在线观看| 欧美一区二区三区爱爱| 香蕉成人伊视频在线观看| 日本大香伊一区二区三区| 中文字幕在线观看一区二区| 成人综合婷婷国产精品久久蜜臀| 精品国产凹凸成av人网站| 精品制服美女久久| 日韩欧美电影在线| 久久精品国产99国产精品| 日韩女优av电影在线观看| 激情文学综合插| 久久久久国产精品人| 国产一区二区在线免费观看| 精品福利在线导航| 国产福利一区二区三区视频| 久久久国产精华| 成人av电影在线观看| 自拍视频在线观看一区二区| 在线欧美一区二区| 五月天激情综合网| 日韩视频永久免费| 国精产品一区一区三区mba桃花 | 亚洲蜜臀av乱码久久精品蜜桃| 成人国产精品免费观看| 综合久久综合久久| 欧美色手机在线观看| 日本人妖一区二区| 久久久不卡网国产精品二区| 成人午夜在线播放| 亚洲激情在线播放| 欧美一区在线视频| 福利一区福利二区| 亚洲欧美偷拍三级| 日韩欧美国产一区二区三区 | 国内成人免费视频| 亚洲欧洲精品天堂一级| 欧美亚洲一区三区| 激情图区综合网| 亚洲最快最全在线视频| 51午夜精品国产| 福利视频网站一区二区三区| 亚洲图片欧美色图| 久久久久免费观看| 欧美色图免费看| 粉嫩在线一区二区三区视频| 亚洲成人激情社区| 国产欧美日产一区| 欧美日韩国产综合一区二区| 国产精品一二三| 亚洲第一狼人社区| 一区二区中文字幕在线| 欧美一区2区视频在线观看| 播五月开心婷婷综合| 奇米一区二区三区| 亚洲男人天堂av网| 久久久久久久久久看片| 91官网在线免费观看| 国产乱淫av一区二区三区| 亚洲成人av电影| 中文字幕亚洲视频| 久久亚洲影视婷婷| 欧美影片第一页| 成人黄色电影在线 | 欧美三级日韩三级| 91蜜桃婷婷狠狠久久综合9色| 久久99最新地址| 亚洲成人免费看| 一级特黄大欧美久久久| 国产欧美一区二区精品性| 日韩三级高清在线| 精品视频在线免费观看| 91在线精品一区二区| 成人黄色片在线观看| 国产成人精品影视| 国产精品自拍一区| 国产美女久久久久| 看电视剧不卡顿的网站| 麻豆精品视频在线观看视频| 五月激情综合网| 日本欧美在线看| 蜜桃视频免费观看一区| 亚瑟在线精品视频| 日韩av在线发布| 久久精品国产一区二区三| 日本伊人精品一区二区三区观看方式| 亚洲制服丝袜一区| 亚洲国产另类精品专区| 亚洲成人激情自拍| 日韩影视精彩在线| 奇米一区二区三区| 麻豆久久久久久久| 国产麻豆精品在线| jlzzjlzz亚洲日本少妇| 9色porny自拍视频一区二区| 91热门视频在线观看| 日本精品裸体写真集在线观看| 91激情在线视频| 欧美日韩一区成人| 日韩精品一区二区三区swag| 久久亚洲一区二区三区明星换脸 | 久久精品一二三| 日本一区二区三区电影| 亚洲视频免费在线| 亚洲国产精品欧美一二99| 日本欧美久久久久免费播放网| 青娱乐精品在线视频| 国产成人综合视频| 欧洲生活片亚洲生活在线观看| 欧美三级中文字幕在线观看| 日韩精品一区二区三区中文精品| 欧美精品一区二区久久久| 国产精品久久毛片| 亚洲成人动漫在线观看| 国产精品一卡二| 在线精品视频免费观看| 日韩欧美一级在线播放| 中文字幕欧美日本乱码一线二线| 一区二区三区日韩在线观看| 蜜臀精品一区二区三区在线观看| 国产白丝精品91爽爽久久| 欧美视频在线不卡| 国产日产欧美一区| 亚洲123区在线观看| 成人免费视频视频| 911精品国产一区二区在线| 久久久久久久精| 日韩av中文字幕一区二区三区| 白白色 亚洲乱淫| 日韩一级完整毛片| 亚洲天堂成人在线观看| 精品亚洲porn| 欧美剧情片在线观看| 亚洲欧美在线视频| 激情综合网最新|