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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hal.h

?? CC2430多功能調(diào)試程序
?? H
?? 第 1 頁 / 共 5 頁
字號:
// 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;                   \
      }                                          \
   } while(0)




// 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)



/******************************************************************************
*******************    USART-SPI specific functions/macros  *******************
******************************************************************************/
// The macros in this section simplify SPI operation.

//*****************************************************************************
// Macro for setting up an SPI connection. The macro configures the appropriate
// pins for peripheral operation, sets the baudrate if the chip is configured
// to be SPI master, and sets the desired clock polarity and phase. Whether to
// transfer MSB or LSB first is also determined. _spi_ indicates whether
// to use spi 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.

#define SPI_SETUP(spi, baudRate, options)           \
   do {                                             \
      U##spi##UCR = 0x80;                           \
      U##spi##CSR = 0x00;                           \
                                                    \
      if(spi == 0){                                 \
         if(PERCFG & 0x01){                         \
            P1SEL |= 0x3C;                          \
         } else {                                   \
            P0SEL |= 0x3C;                          \
         }                                          \
      }                                             \
      else {                                        \
         if(PERCFG & 0x02){                         \
            P1SEL |= 0xF0;                          \
         } else {                                   \
            P0SEL |= 0x3C;                          \
         }                                          \
      }                                             \
                                                    \
      if(options & SPI_SLAVE){                      \
         U##spi##CSR = 0x20;                        \
      }                                             \
      else {                                        \
         U##spi##GCR = BAUD_E(baudRate, CLKSPD);    \
         U##spi##BAUD = BAUD_M(baudRate);           \
      }                                             \
      U##spi##GCR |= (options & 0xE0);              \
   } while(0)


// Options for the SPI_SETUP macro.
#define SPI_SLAVE              0x01
#define SPI_MASTER             0x00
#define SPI_CLOCK_POL_LO       0x00
#define SPI_CLOCK_POL_HI       0x80
#define SPI_CLOCK_PHA_0        0x00
#define SPI_CLOCK_PHA_1        0x40
#define SPI_TRANSFER_MSB_FIRST 0x20
#define SPI_TRANSFER_MSB_LAST  0x00



/******************************************************************************
*******************       FLASH programming functions       *******************
*******************************************************************************
FlashWritePage(...)_ writes a whole flash page. Because code memory cannot
be read during flash write, the writing routines are copied to XDATA RAM. The
function is implemented in assembly code with file extensions .s51 rather than .c

The Direct Memory Access (DMA) may also be used for flash write.
******************************************************************************/

//Macro for erasing a given flash page
#define FLASH_ERASE_PAGE(page) \
   do{                         \
      FADDRH = (page) << 1;    \
      FADDRL = 0x00;           \
      FLASH_CONFIG(ERASE);     \
   }while (0)


// Macro for configuring flash access and setting flash access mode.
#define FLASH_CONFIG(options)     \
   do {                           \
      FWT  = ( 0x2A >> CLKSPD );  \
      FCTL = options;             \
   } while (0)

// _options_ may be the following:
#define READ_WHEN_NEED  0x00
#define CONTINOUS_READ  0x10
#define WRITE           0x02
#define ERASE           0x01
#define FLASH_BUSY      0x80

/******************************************************************************
* @fn  halFlashWritePage
*
* @brief
*       This function writes a byte field in XDATA RAM to a given flash
*       page. Normal program execution is run from flash. However during flash
*       write, flash memory is not available for reading. To circumvent this
*       problem the core operation of this procedure, namely the actual flash
*       write procedure, is copied to XDATA RAM and run from there. The flash
*       write procedure is copied to a 35 byte XDATA RAM buffer.
*       Prior to a write the page is erased.
*
*       This function disables interrupts when running, and re-enables interrupt
*       if interrupts were enabled at function entry.
*
* Parameters:
*
* @param  BYTE*	 pSrcAddr
*         Pointer to first byte in xdata space which is to be written to
*         flash. The number of bytes a flash page consists of starting from
*         this address will be written to the page _page_.
* @param  BYTE*	 pBuffer
*         Pointer to a buffer of 35 bytes in XDATA RAM to which the flash
*         write procedure
*         can be copied.
* @param  BYTE	    page
*         Indicates which of the flash pages the data is to be written to.
*
* @return void
*
******************************************************************************/
void halFlashWritePage(BYTE *pSrcAddr, BYTE *pBuffer, BYTE page);


/******************************************************************************
* @fn  halFlashErasePage
*
* @brief
*       This function erases a given flash page.
*
*       This function disables interrupts when running, and re-enables interrupt
*       if interrupts were enabled at function entry.
*
* Parameters:
*
* @param  BYTE*	 pBuffer
*         Pointer to a buffer of 10 bytes in XDATA RAM to which the flash
*         erase procedure can be copied.
* @param  BYTE	    page
*         Indicates which of the flash pages is to be erased.
*
* @return void
*
******************************************************************************/
void halFlashErasePage(BYTE* buffer, BYTE page);



/******************************************************************************
*******************      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 power mode
#define SET_POWER_MODE(mode)                   \
   do {                                        \
      if(mode == 0)        { SLEEP &= ~0x03; } \
      else if (mode == 3)  { SLEEP |= 0x03;  } \
      else { SLEEP &= ~0x03; SLEEP |= mode;  } \
      PCON |= 0x01;                            \
      asm("NOP");                              \
   }while (0)


// Where _mode_ is one of
#define POWER_MODE_0  0x00  // Clock oscillators on, voltage regulator on
#define POWER_MODE_1  0x01  // 32.768 KHz oscillator on, voltage regulator on
#define POWER_MODE_2  0x02  // 32.768 KHz oscillator on, voltage regulator off
#define POWER_MODE_3  0x03  // All clock oscillators off, voltage regulator off

// 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)



/******************************************************************************
*******************           Timer macros/functions        *******************
*******************************************************************************
General:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色精品在线视频| 国产专区欧美精品| 久久午夜羞羞影院免费观看| 成人av集中营| 激情五月婷婷综合网| 一区二区三区产品免费精品久久75| 日韩欧美一级片| 亚洲电影你懂得| 色婷婷综合久久久久中文| 一区二区三区国产豹纹内裤在线 | 国产精品伊人色| 午夜在线电影亚洲一区| 国产精品无人区| 精品久久久久久久久久久院品网| 欧美视频在线观看一区二区| 成人深夜在线观看| 国产一区二区毛片| 免费成人美女在线观看.| 亚洲综合色婷婷| 国产精品美女久久久久高潮| 欧美成人性战久久| 69久久夜色精品国产69蝌蚪网| 一本大道久久精品懂色aⅴ| 国产白丝精品91爽爽久久 | 色综合中文字幕国产| 欧美96一区二区免费视频| 亚洲综合一区二区精品导航| 中文字幕在线观看不卡视频| 欧美精品一区二区三区蜜臀| 日韩免费视频线观看| 日韩欧美一区二区免费| 制服丝袜国产精品| 69av一区二区三区| 欧美日韩一区中文字幕| 91成人在线精品| 91福利国产精品| 91行情网站电视在线观看高清版| 99精品久久只有精品| 成人av网站在线观看| 99精品在线免费| 色菇凉天天综合网| 在线观看视频91| 欧美日韩不卡视频| 欧美一级在线视频| 精品免费一区二区三区| 欧美xxxxxxxx| 国产亚洲综合av| 中文字幕av资源一区| 成人欧美一区二区三区1314| 综合婷婷亚洲小说| 亚洲五码中文字幕| 天堂一区二区在线免费观看| 日本中文字幕一区| 精品一区二区免费在线观看| 国产精品一区在线观看乱码| 国产69精品久久777的优势| aa级大片欧美| 欧洲在线/亚洲| 在线播放欧美女士性生活| 日韩午夜在线影院| 国产欧美一区二区精品性| 国产精品免费视频观看| 亚洲人成亚洲人成在线观看图片 | 久久综合久色欧美综合狠狠| 2020国产精品自拍| 中文字幕一区二区三区av| 亚洲乱码日产精品bd| 亚洲一二三四在线观看| 蜜芽一区二区三区| 夫妻av一区二区| 欧美日韩视频专区在线播放| 日韩午夜在线观看| 国产精品乱人伦| 亚洲国产欧美在线| 韩日av一区二区| 91欧美一区二区| 欧美一区在线视频| 欧美经典一区二区三区| 一区二区不卡在线播放 | 成人福利视频网站| 欧洲精品视频在线观看| 日韩精品在线看片z| 国产精品短视频| 奇米精品一区二区三区在线观看| 国产精品1区2区| 51精品久久久久久久蜜臀| 国产日产欧产精品推荐色| 亚洲第一综合色| 成人综合婷婷国产精品久久蜜臀| 欧洲精品一区二区| 欧美国产乱子伦| 天天影视色香欲综合网老头| 国产盗摄一区二区三区| 欧美曰成人黄网| 久久久777精品电影网影网| 亚洲色图.com| 国产一区二区在线免费观看| 欧美综合一区二区三区| 久久综合九色综合97婷婷 | 美国十次综合导航| 色域天天综合网| ww亚洲ww在线观看国产| 性久久久久久久久久久久| 丰满亚洲少妇av| 欧美一级日韩免费不卡| 国产欧美1区2区3区| 日韩激情一二三区| 色综合久久综合网欧美综合网| 久久一区二区三区四区| 日本中文字幕一区| 91久久久免费一区二区| 国产精品久久777777| 久久av老司机精品网站导航| 欧美性猛交xxxx乱大交退制版| 亚洲国产精品成人综合色在线婷婷| 秋霞午夜av一区二区三区| 在线亚洲免费视频| 国产日韩亚洲欧美综合| 激情综合亚洲精品| 91精品婷婷国产综合久久性色| 亚洲制服丝袜av| 91福利精品视频| 亚洲一区二区三区爽爽爽爽爽| 93久久精品日日躁夜夜躁欧美| 久久久久久久久免费| 麻豆91在线观看| 日韩欧美国产不卡| 麻豆国产欧美一区二区三区| 在线91免费看| 五月天久久比比资源色| 欧美在线免费播放| 亚洲线精品一区二区三区八戒| 91麻豆6部合集magnet| 国产精品国产三级国产专播品爱网| 国产在线精品一区二区夜色| 5月丁香婷婷综合| 青青草精品视频| 欧美一级久久久| 久久精品国产99国产精品| 日韩午夜激情av| 激情综合色播激情啊| 久久夜色精品一区| 大陆成人av片| 亚洲欧洲制服丝袜| 欧美羞羞免费网站| 午夜电影网亚洲视频| 欧美一级理论片| 国产很黄免费观看久久| 中文字幕中文字幕一区二区| 99综合影院在线| 亚洲国产精品综合小说图片区| 欧美丝袜自拍制服另类| 日本vs亚洲vs韩国一区三区二区| 欧美一区二区在线视频| 精品一区二区三区在线观看国产| 欧美va在线播放| 国产99久久久精品| 亚洲免费观看高清完整版在线 | 91精品国产色综合久久| 美日韩一区二区| 精品成人一区二区三区四区| 国产老肥熟一区二区三区| 国产欧美日韩在线| av在线播放不卡| 亚洲国产成人精品视频| 欧美一区二区久久久| 国产九色sp调教91| 亚洲人成影院在线观看| 88在线观看91蜜桃国自产| 国产一区二区伦理片| 亚洲精品国久久99热| 日韩欧美一区中文| 国产成人精品免费| 一区二区三区欧美日韩| 日韩亚洲欧美中文三级| 不卡的电影网站| 亚洲一区在线视频| 26uuu色噜噜精品一区| 95精品视频在线| 奇米一区二区三区| 亚洲欧洲精品一区二区三区不卡| 精品视频资源站| 国产福利不卡视频| 亚洲已满18点击进入久久| 久久久综合视频| 91黄色激情网站| 国产精品一二二区| 日韩激情在线观看| 亚洲欧美另类小说视频| 精品日韩欧美在线| 欧亚一区二区三区| 国产精品一区二区黑丝| 亚洲国产一区二区视频| 久久精品视频一区二区三区| 欧美三级午夜理伦三级中视频| 国产精品小仙女| 欧美aa在线视频| 亚洲国产欧美在线| 国产精品进线69影院| 精品国精品国产|