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

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

?? halcc2420.h.bak

?? 射頻芯片cc2420的使用例程
?? BAK
字號:
/*******************************************************************************************************
		CC2420 硬件抽象庫
 *******************************************************************************************************/
#ifndef HALCC2420_H
#define HALCC2420_H

//	CC2420 寄存器常量
#define CC2420_SNOP             0x00
#define CC2420_SXOSCON          0x01
#define CC2420_STXCAL           0x02
#define CC2420_SRXON            0x03
#define CC2420_STXON            0x04
#define CC2420_STXONCCA         0x05
#define CC2420_SRFOFF           0x06
#define CC2420_SXOSCOFF         0x07
#define CC2420_SFLUSHRX         0x08
#define CC2420_SFLUSHTX         0x09
#define CC2420_SACK             0x0A
#define CC2420_SACKPEND         0x0B
#define CC2420_SRXDEC           0x0C
#define CC2420_STXENC           0x0D
#define CC2420_SAES             0x0E

#define CC2420_MAIN             0x10
#define CC2420_MDMCTRL0         0x11
#define CC2420_MDMCTRL1         0x12
#define CC2420_RSSI             0x13
#define CC2420_SYNCWORD         0x14
#define CC2420_TXCTRL           0x15
#define CC2420_RXCTRL0          0x16
#define CC2420_RXCTRL1          0x17
#define CC2420_FSCTRL           0x18
#define CC2420_SECCTRL0         0x19
#define CC2420_SECCTRL1         0x1A
#define CC2420_BATTMON          0x1B
#define CC2420_IOCFG0           0x1C
#define CC2420_IOCFG1           0x1D
#define CC2420_MANFIDL          0x1E
#define CC2420_MANFIDH          0x1F
#define CC2420_FSMTC            0x20
#define CC2420_MANAND           0x21
#define CC2420_MANOR            0x22
#define CC2420_AGCCTRL          0x23
#define CC2420_AGCTST0          0x24
#define CC2420_AGCTST1          0x25
#define CC2420_AGCTST2          0x26
#define CC2420_FSTST0           0x27
#define CC2420_FSTST1           0x28
#define CC2420_FSTST2           0x29
#define CC2420_FSTST3           0x2A
#define CC2420_RXBPFTST         0x2B
#define CC2420_FSMSTATE         0x2C
#define CC2420_ADCTST           0x2D
#define CC2420_DACTST           0x2E
#define CC2420_TOPTST           0x2F
#define CC2420_RESERVED         0x30

#define CC2420_TXFIFO           0x3E
#define CC2420_RXFIFO           0x3F

// 存儲器大小
#define CC2420_RAM_SIZE					368
#define CC2420_FIFO_SIZE				128

//CC2420 RAM 地址空間
#define CC2420RAM_TXFIFO				0x000
#define CC2420RAM_RXFIFO				0x080
#define CC2420RAM_KEY0					0x100
#define CC2420RAM_RXNONCE				0x110
#define CC2420RAM_SABUF					0x120
#define CC2420RAM_KEY1					0x130
#define CC2420RAM_TXNONCE				0x140
#define CC2420RAM_CBCSTATE				0x150
#define CC2420RAM_IEEEADDR				0x160
#define CC2420RAM_PANID					0x168
#define CC2420RAM_SHORTADDR				0x16A

// 狀態字節
#define CC2420_XOSC16M_STABLE		        6
#define CC2420_TX_UNDERFLOW			5
#define CC2420_ENC_BUSY				4
#define CC2420_TX_ACTIVE			3
#define CC2420_LOCK			        2
#define CC2420_RSSI_VALID			1

//安全控制寄存器0SECCTRL0
#define CC2420_SECCTRL0_NO_SECURITY         0x0000
#define CC2420_SECCTRL0_CBC_MAC             0x0001
#define CC2420_SECCTRL0_CTR                 0x0002
#define CC2420_SECCTRL0_CCM                 0x0003

#define CC2420_SECCTRL0_SEC_M_IDX           2

#define CC2420_SECCTRL0_RXKEYSEL0           0x0000
#define CC2420_SECCTRL0_RXKEYSEL1           0x0020

#define CC2420_SECCTRL0_TXKEYSEL0           0x0000
#define CC2420_SECCTRL0_TXKEYSEL1           0x0040

#define CC2420_SECCTRL0_SEC_CBC_HEAD        0x0100
#define CC2420_SECCTRL0_RXFIFO_PROTECTION   0x0200

/*******************************************************************************************************
							 ATmega128<-------->CC2420 SPI接口
 *******************************************************************************************************/
// 初始化
// 使能SPI,選擇“master”模式,時鐘速率FCK/2,SPI模式0
//?  SPSR = BV(SPI2X); 
#define SPI_INIT() \
    do { \
        SPCR = BV(SPE) | BV(MSTR) | BV(SPR0); \
        SPSR = BV(SPI2X); \
    } while (0)

// FAST SPI: 低級別函數
//      x = value (BYTE or WORD)
//      p = pointer to the byte array to operate on
//      c = the byte count
// SPI_ENABLE() 和 SPI_DISABLE() 在有關節點的定義文件中定義

#define FASTSPI_WAIT() \
    do { \
        while (!(SPSR & BV(SPIF))); \
    } while (0) 

#define FASTSPI_TX(x) \
    do { \
        SPDR = x; \
        FASTSPI_WAIT(); \
    } while (0)

#define FASTSPI_RX(x) \
    do { \
        SPDR = 0; \
        FASTSPI_WAIT(); \
        x = SPDR; \
    } while (0)

#define FASTSPI_RX_GARBAGE() \
    do { \
        SPDR = 0; \
        FASTSPI_WAIT(); \
    } while (0)
    
//先低后高
#define FASTSPI_TX_WORD_LE(x) \
    do { \
        FASTSPI_TX(x); \
        FASTSPI_TX((x) >> 8); \
    } while (0)
    
  //先高后低  
#define FASTSPI_TX_WORD(x) \
    do { \
        FASTSPI_TX(((WORD)(x)) >> 8); \
        FASTSPI_TX((BYTE)(x)); \
    } while (0)
    
#define FASTSPI_TX_MANY(p,c) \
    do { \
		UINT8 spiCnt; \
        for (spiCnt = 0; spiCnt < (c); spiCnt++) { \
            FASTSPI_TX(((BYTE*)(p))[spiCnt]); \
        } \
    } while (0)
    
  //先低后高      
#define FASTSPI_RX_WORD_LE(x) \ 
    do { \
        SPDR = 0; \
        FASTSPI_WAIT(); \
        x = SPDR; \
        SPDR = 0; \
        FASTSPI_WAIT(); \
        x |= SPDR << 8; \
    } while (0)
    
//先高后低
#define FASTSPI_RX_WORD(x) \
    do { \
        SPDR = 0; \
        FASTSPI_WAIT(); \
        x = SPDR << 8; \
        SPDR = 0; \
        FASTSPI_WAIT(); \
        x |= SPDR; \
    } while (0)
    
#define FASTSPI_RX_MANY(p,c) \
    do { \
		UINT8 spiCnt; \
        for (spiCnt = 0; spiCnt < (c); spiCnt++) { \
            FASTSPI_RX((p)[spiCnt]); \
        } \
    } while (0)
        
// 傳輸寄存器地址:
#define FASTSPI_TX_ADDR(a) \
    do { \
        SPDR = a; \
        FASTSPI_WAIT(); \
    } while (0)

// 接收寄存器地址
#define FASTSPI_RX_ADDR(a) \
    do { \
        SPDR = (a) | 0x40; \
        FASTSPI_WAIT(); \
    } while (0)

/***********************************************************************************************
	FAST SPI:寄存器訪問
	s = command strobe
        a = register address
        v = register value
***********************************************************************************************/
#define FASTSPI_STROBE(s) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_TX_ADDR(s); \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_SETREG(a,v) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_TX_ADDR(a); \
        FASTSPI_TX((BYTE) ((v) >> 8)); \
        FASTSPI_TX((BYTE) (v)); \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_GETREG(a,v) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_RX_ADDR(a); \
        FASTSPI_RX_WORD(v); \
        SPI_DISABLE(); \
    } while (0)

// 更新SPI狀態字節
#define FASTSPI_UPD_STATUS(s) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_TX_ADDR(CC2420_SNOP); \
        s = SPDR; \
        SPI_DISABLE(); \
    } while (0)
/***********************************************************************************************
//  FAST SPI: FIFO 訪問
//      p = 指向要讀取/寫入的字節數組的指針
//      c = 要讀取/寫入的字節數目
//      b = 單個數據字節
***********************************************************************************************/
#define FASTSPI_WRITE_FIFO(p,c) \
    do { \
		UINT8 spiCnt; \
        SPI_ENABLE(); \
        FASTSPI_TX_ADDR(CC2420_TXFIFO); \
        for (spiCnt = 0; spiCnt < (c); spiCnt++) { \
            FASTSPI_TX(((BYTE*)(p))[spiCnt]); \
        } \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_READ_FIFO(p,c) \
    do { \
		UINT8 spiCnt; \
        SPI_ENABLE(); \
        FASTSPI_RX_ADDR(CC2420_RXFIFO); \
        for (spiCnt = 0; spiCnt < (c); spiCnt++) { \
            while (!FIFO_IS_1); \
            FASTSPI_RX(((BYTE*)(p))[spiCnt]); \
        } \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_READ_FIFO_BYTE(b) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_RX_ADDR(CC2420_RXFIFO); \
        FASTSPI_RX(b); \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_READ_FIFO_NO_WAIT(p,c) \
    do { \
		UINT8 spiCnt; \
        SPI_ENABLE(); \
        FASTSPI_RX_ADDR(CC2420_RXFIFO); \
        for (spiCnt = 0; spiCnt < (c); spiCnt++) { \
            FASTSPI_RX(((BYTE*)(p))[spiCnt]); \
        } \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_READ_FIFO_GARBAGE(c) \
    do { \
		UINT8 spiCnt; \
        SPI_ENABLE(); \
        FASTSPI_RX_ADDR(CC2420_RXFIFO); \
        for (spiCnt = 0; ((spiCnt < (c)) && (FIFO_IS_1)); spiCnt++) { \
            FASTSPI_RX_GARBAGE(); \
        } \
        SPI_DISABLE(); \
    } while (0)

/***********************************************************************************************
  FAST SPI: CC2420 RAM 訪問 (大端或小端字節序)
      p = 指向將要被寫入的變量
      a = CC2420 RAM 地址
      c = 要寫入的字節數
      n = 計數變量,用在for/while循環

  使用的例子:
      UINT8 n;
      UINT16 shortAddress = 0xBEEF;
      FASTSPI_WRITE_RAM_LE(&shortAddress, CC2420RAM_SHORTADDR, 2, n);
***********************************************************************************************/

#define FASTSPI_WRITE_RAM_LE(p,a,c,n) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_TX(0x80 | (a & 0x7F)); \
        FASTSPI_TX((a >> 1) & 0xC0); \
        for (n = 0; n < (c); n++) { \
            FASTSPI_TX(((BYTE*)(p))[n]); \
        } \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_READ_RAM_LE(p,a,c,n) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_TX(0x80 | (a & 0x7F)); \
        FASTSPI_TX(((a >> 1) & 0xC0) | 0x20); \
        for (n = 0; n < (c); n++) { \
            FASTSPI_RX(((BYTE*)(p))[n]); \
        } \
        SPI_DISABLE(); \
    } while (0)
    
#define FASTSPI_WRITE_RAM(p,a,c,n) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_TX(0x80 | (a & 0x7F)); \
        FASTSPI_TX((a >> 1) & 0xC0); \
        n = c; \
        do { \
            FASTSPI_TX(((BYTE*)(p))[--n]); \
        } while (n); \
        SPI_DISABLE(); \
    } while (0)

#define FASTSPI_READ_RAM(p,a,c,n) \
    do { \
        SPI_ENABLE(); \
        FASTSPI_TX(0x80 | (a & 0x7F)); \
        FASTSPI_TX(((a >> 1) & 0xC0) | 0x20); \
        n = c; \
        do { \
            FASTSPI_RX(((BYTE*)(p))[--n]); \
        } while (n); \
        SPI_DISABLE(); \
    } while (0)

// 其他有用的SPI宏
#define FASTSPI_RESET_CC2420() \
    do { \
        FASTSPI_SETREG(CC2420_MAIN, 0x0000); \
        FASTSPI_SETREG(CC2420_MAIN, 0xF800); \
    } while (0)

// Sets the PWM duty cycle
//#define PWM0_SET_DUTY_CYCLE(dutyCycle) do { OCR0 = (dutyCycle); } while (0)

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品的网站| 91麻豆精东视频| 又紧又大又爽精品一区二区| 精品欧美乱码久久久久久1区2区| 在线观看免费视频综合| 91香蕉国产在线观看软件| 欧美日本一区二区| 欧美性色黄大片| 欧美日韩视频在线一区二区| 欧美日韩www| 国产精品护士白丝一区av| 日本成人超碰在线观看| 蜜臀99久久精品久久久久久软件 | 欧美在线一二三四区| 日韩精品中文字幕一区 | 97se亚洲国产综合自在线不卡| 国产传媒日韩欧美成人| 国产成人精品1024| 日韩午夜av电影| 久久这里只有精品6| 欧美激情中文不卡| 亚洲少妇最新在线视频| 亚洲综合激情网| 天天影视网天天综合色在线播放| 男人的天堂久久精品| 国产高清精品久久久久| 亚洲一区二区视频在线| 国产精品一区二区果冻传媒| 亚洲18色成人| 午夜精品爽啪视频| 欧美亚洲免费在线一区| 亚洲人成伊人成综合网小说| 亚洲图片欧美综合| 激情成人综合网| 不卡一区二区在线| 欧美视频一区二区在线观看| 亚洲欧洲日韩在线| 日韩中文欧美在线| 成人永久看片免费视频天堂| 欧美日韩精品综合在线| 亚洲一区二区三区三| 精品视频1区2区| 亚洲大尺度视频在线观看| 欧美日韩免费视频| 日本欧美韩国一区三区| 欧美不卡视频一区| 国产九色精品成人porny| 国产亚洲一本大道中文在线| 亚洲成av人片www| 欧美浪妇xxxx高跟鞋交| 中文在线资源观看网站视频免费不卡 | 欧美午夜精品久久久久久超碰| 亚洲综合网站在线观看| 91精品在线免费| 一区二区三区日韩欧美精品| 东方aⅴ免费观看久久av| 欧美高清www午色夜在线视频| 日韩中文字幕av电影| 精品久久久久久最新网址| 风间由美一区二区三区在线观看 | 风间由美性色一区二区三区| 中文字幕欧美激情| 欧美综合色免费| 国产一区久久久| 日韩一本二本av| 国产v日产∨综合v精品视频| 亚洲精品中文在线观看| 欧美一区二区三区在| 亚洲高清免费观看| 欧美精品一区二区三| 蜜臀精品久久久久久蜜臀| 国产欧美一区二区三区在线老狼| 久久精品国产亚洲一区二区三区| 欧美午夜精品免费| 国产麻豆精品在线观看| 亚洲中国最大av网站| 2020国产精品久久精品美国| 色拍拍在线精品视频8848| 亚洲国产精品成人综合| 欧美日高清视频| av电影在线观看一区| 成人欧美一区二区三区黑人麻豆 | 欧美日韩国产一区二区三区地区| 精彩视频一区二区| 精品国产精品一区二区夜夜嗨| 91老师片黄在线观看| 久久国内精品自在自线400部| 中文字幕在线不卡| 久久免费看少妇高潮| 国产jizzjizz一区二区| 无码av免费一区二区三区试看 | 成人晚上爱看视频| 免费在线观看精品| 夜夜嗨av一区二区三区中文字幕| 国产亚洲成年网址在线观看| 日韩欧美一区二区免费| 欧美亚洲综合网| 色综合视频一区二区三区高清| 国产伦精品一区二区三区免费| 日韩在线一区二区三区| 亚洲国产精品一区二区久久恐怖片| 中文字幕免费一区| 久久久噜噜噜久久中文字幕色伊伊| 欧美日韩国产免费| 欧美亚洲综合色| 色呦呦网站一区| 91首页免费视频| 91免费观看国产| 成人黄色一级视频| 国产成人免费av在线| 国内偷窥港台综合视频在线播放| 午夜激情一区二区| 亚洲一区二区三区自拍| 亚洲资源中文字幕| 亚洲aaa精品| 日日夜夜免费精品| 三级欧美在线一区| 日韩av一二三| 久久99久久精品| 精品写真视频在线观看| 国产自产视频一区二区三区| 国产乱码精品一区二区三| 国产成人自拍网| 成人激情综合网站| 91视频在线观看免费| 一本到不卡精品视频在线观看| 色伊人久久综合中文字幕| 色美美综合视频| 国内成人精品2018免费看| 色婷婷久久99综合精品jk白丝| 欧美在线影院一区二区| 91超碰这里只有精品国产| 日韩一区二区三区免费看| 精品欧美一区二区久久| 国产亚洲欧美一区在线观看| 国产精品久久久久一区二区三区共| 国产精品大尺度| 亚洲chinese男男1069| 美国毛片一区二区| 国产成人精品网址| 欧洲中文字幕精品| 日韩一区二区三区电影| 国产亚洲美州欧州综合国| 亚洲欧美一区二区不卡| 亚洲va在线va天堂| 国产剧情av麻豆香蕉精品| 91麻豆免费视频| 欧美大胆一级视频| 中文字幕制服丝袜成人av| 亚洲福利视频三区| 国产精品99久久久久久宅男| 色偷偷成人一区二区三区91| 日韩一区二区高清| 自拍偷拍亚洲综合| 免费在线看成人av| 91麻豆国产在线观看| 欧美一区二区三区免费大片| 国产精品嫩草影院com| 久久精品视频免费| 亚洲午夜日本在线观看| 国产精品影音先锋| 欧美日韩你懂的| 中文成人综合网| 蜜桃精品视频在线观看| 91麻豆精品在线观看| 久久久久国产精品麻豆ai换脸| 亚洲最新视频在线播放| 国产suv精品一区二区三区| 欧美巨大另类极品videosbest| 国产欧美一区二区精品性色超碰| 亚洲电影视频在线| 91网址在线看| 国产日韩欧美麻豆| 免费av成人在线| 91福利区一区二区三区| 亚洲综合激情另类小说区| www.亚洲激情.com| 2024国产精品视频| 蜜臀久久99精品久久久画质超高清| 91麻豆国产自产在线观看| 中文欧美字幕免费| 国产在线播放一区二区三区| 欧美高清视频不卡网| 亚洲激情在线激情| 成人亚洲一区二区一| 久久丝袜美腿综合| 蜜桃av噜噜一区二区三区小说| 欧美视频在线播放| 亚洲一区二区av电影| 不卡视频在线看| 亚洲国产精品激情在线观看| 国产精品一二三四| 久久青草欧美一区二区三区| 精品一区二区三区在线观看国产| 欧美日韩另类一区| 亚洲国产精品一区二区www在线| 色综合久久中文综合久久97| 亚洲美女淫视频| 日本国产一区二区| 一区二区三区免费看视频|