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

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

?? hal.h

?? 無線單片機(jī)CC1110的一些使用源代碼
?? 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一区二区三区免费野_久草精品视频
99精品偷自拍| 制服视频三区第一页精品| 狠狠色狠狠色综合系列| 成人丝袜18视频在线观看| 3d动漫精品啪啪一区二区竹菊| 久久理论电影网| 五月综合激情网| 成人av电影在线播放| 久久综合久久综合亚洲| 亚洲成人免费影院| 91麻豆免费看| 最新欧美精品一区二区三区| 国内外成人在线| 欧美刺激脚交jootjob| 午夜精品在线视频一区| 欧美写真视频网站| 亚洲乱码日产精品bd| 成人一区二区三区在线观看| 精品国产一区二区三区久久久蜜月| 午夜视频在线观看一区二区 | 国产91在线|亚洲| 日韩欧美中文字幕公布| 日本大胆欧美人术艺术动态| 欧美视频一区二| 一区二区三区四区视频精品免费 | 97久久精品人人做人人爽50路| 精品久久久久久久一区二区蜜臀| 亚洲综合区在线| 99精品久久久久久| **性色生活片久久毛片| 激情深爱一区二区| 精品国产电影一区二区| 美女视频第一区二区三区免费观看网站| 91老师国产黑色丝袜在线| 亚洲欧美综合另类在线卡通| 不卡一区中文字幕| 国产欧美一区二区精品忘忧草| 国产在线播精品第三| 久久亚洲免费视频| 国产福利视频一区二区三区| 久久久久久久网| 国产资源精品在线观看| 国产日韩欧美麻豆| 色综合久久久久综合| 亚洲国产另类av| 91麻豆国产自产在线观看| 亚洲国产一区二区在线播放| 欧美性videosxxxxx| 日韩国产一二三区| 久久一日本道色综合| 国产福利精品一区| 中文字幕巨乱亚洲| 91污在线观看| 亚洲线精品一区二区三区八戒| 91高清在线观看| 日本不卡不码高清免费观看| 日韩三级伦理片妻子的秘密按摩| 麻豆精品在线看| 亚洲国产高清不卡| 欧洲一区二区三区在线| 老色鬼精品视频在线观看播放| 久久精品亚洲麻豆av一区二区| 国产成人精品亚洲777人妖| 亚洲精品中文在线影院| 欧美性生活一区| 亚洲国产精品天堂| 2022国产精品视频| 97精品久久久午夜一区二区三区| 亚洲一二三四久久| 制服丝袜成人动漫| 91在线观看高清| 久久99精品国产.久久久久久| 中文字幕av一区二区三区| 3d动漫精品啪啪一区二区竹菊| 国产91丝袜在线18| 日韩极品在线观看| 亚洲特级片在线| 精品欧美乱码久久久久久1区2区 | 91精品国产综合久久香蕉麻豆| 国产精品一卡二卡在线观看| 亚洲一区二区三区爽爽爽爽爽| 26uuu色噜噜精品一区二区| 91久久久免费一区二区| 国产精品一二三区在线| 日本色综合中文字幕| 一区二区在线看| 国产亚洲欧洲997久久综合 | 国产91丝袜在线18| 亚洲大片免费看| 国产精品国产三级国产aⅴ中文| 91丝袜国产在线播放| 久久成人av少妇免费| 亚洲国产一区视频| 亚洲精品你懂的| 亚洲日本在线视频观看| 久久综合色之久久综合| 日韩一区二区三| 色婷婷综合久色| 99久久er热在这里只有精品15| 国产一区激情在线| 蜜桃av噜噜一区二区三区小说| 国产精品卡一卡二| 久久理论电影网| 久久老女人爱爱| 久久精品夜色噜噜亚洲aⅴ| 欧美一区二区成人| 正在播放亚洲一区| 欧美精品粉嫩高潮一区二区| 欧美日韩亚洲高清一区二区| 在线观看不卡视频| 欧洲av一区二区嗯嗯嗯啊| 91蜜桃网址入口| 色综合久久久久久久久| 91免费版pro下载短视频| 91片在线免费观看| 欧美最猛性xxxxx直播| 在线看国产一区| 欧美日韩精品一区二区三区蜜桃 | 97久久精品人人做人人爽| 成人毛片在线观看| 99久久国产免费看| 欧美这里有精品| 欧美剧情电影在线观看完整版免费励志电影 | 欧美日韩国产高清一区二区 | 2023国产精品视频| 国产色一区二区| 日本一区二区动态图| 亚洲欧美一区二区三区孕妇| 亚洲激情综合网| 日日摸夜夜添夜夜添亚洲女人| 日韩中文字幕av电影| 国产乱码一区二区三区| av一区二区三区在线| 精品视频一区二区不卡| 日韩欧美亚洲一区二区| 国产视频亚洲色图| 一级精品视频在线观看宜春院 | 欧美大胆人体bbbb| 国产日产欧产精品推荐色| 亚洲黄色片在线观看| 日韩精品欧美精品| 成人激情黄色小说| 欧美日韩国产影片| 国产午夜亚洲精品不卡| 亚洲欧美一区二区三区久本道91| 五月天激情小说综合| 国产精一品亚洲二区在线视频| 色哟哟一区二区三区| 日韩你懂的在线观看| 亚洲四区在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 成人av免费观看| 日韩精品一区二区三区在线观看 | 蜜桃av一区二区三区| caoporn国产一区二区| 91麻豆精品国产91久久久使用方法| 久久久综合视频| 亚洲成av人片在线观看| 成人在线综合网| 日韩女优毛片在线| 亚洲一区在线视频| 国产成人日日夜夜| 日韩午夜在线播放| 亚洲激情成人在线| 国产高清不卡一区二区| 欧美久久免费观看| 亚洲日本va午夜在线电影| 精品一区二区三区在线观看| 欧美三级三级三级爽爽爽| 国产精品欧美极品| 国产在线一区二区| 欧美精品粉嫩高潮一区二区| 亚洲桃色在线一区| 成人精品视频一区| 久久综合久久综合久久| 无码av免费一区二区三区试看| bt7086福利一区国产| 精品电影一区二区三区| 天堂va蜜桃一区二区三区| 色偷偷久久一区二区三区| 久久久国产精品麻豆| 韩国欧美一区二区| 欧美男生操女生| 亚洲综合色噜噜狠狠| 91色乱码一区二区三区| 国产精品蜜臀av| 成人黄色大片在线观看| 久久久久久久久久久电影| 麻豆国产精品官网| 欧美成人性福生活免费看| 日韩电影在线观看一区| 欧美另类久久久品| 亚洲一区在线播放| 欧美午夜在线一二页| 亚洲欧洲中文日韩久久av乱码| www.99精品| 中文字幕一区二区三区av| 成人黄色片在线观看| 亚洲天堂精品视频| 色综合久久久久综合体|