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

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

?? halsrf04.h

?? 基于CC1100和ATMEGA128開發的無線機器人控制程序
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*******************************************************************************************************
 * Compiler: AVR-GCC                                                                                   *
 * Target platform: CCxx00 + any ATMEGA MCU                                                  *
 * Author:       WangChaoyan    

 *******************************************************************************************************
 * Revision history:        See end of file                                                            *
 ******************************************************************************************************/
#ifndef _HALSRF04_H
#define _HALSRF04_H

#include "regssrf04.h"
#include "common.h"


// Definitions to support burst/single access:
#define WRITE_BURST     0x40
#define READ_SINGLE     0x80
#define READ_BURST      0xC0

#define ENABLE_TX		 halSpiStrobe(CCxxx0_STX)
#define ENABLE_RX		 halSpiStrobe(CCxxx0_SRX)


#define FREQ_433


//#define BYTES_IN_RXFIFO     0x7F 

//-------------------------------------------------------------------------------------------------------
//  void halSpiStrobe(BYTE strobe)
//
//  DESCRIPTION:
//      Function for writing a strobe command to the CCxxx0
//
//  ARGUMENTS:
//      BYTE strobe
//          Strobe command
//-------------------------------------------------------------------------------------------------------
void halSpiStrobe(BYTE strobe);




//-------------------------------------------------------------------------------------------------------
//  BYTE halSpiReadStatus(BYTE addr)
//
//  DESCRIPTION:
//      This function reads a CCxxx0 status register.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the CCxxx0 status register to be accessed.
//
//  RETURN VALUE:
//      BYTE
//          Value of the accessed CCxxx0 status register.
//-------------------------------------------------------------------------------------------------------
BYTE halSpiReadStatus(BYTE addr);




//-------------------------------------------------------------------------------------------------------
//  void halSpiWriteReg(BYTE addr, BYTE value)
//
//  DESCRIPTION:
//      Function for writing to a single CCxxx0 register
//
//  ARGUMENTS:
//      BYTE addr
//          Address of a specific CCxxx0 register to accessed.
//      BYTE value
//          Value to be written to the specified CCxxx0 register.
//-------------------------------------------------------------------------------------------------------
void halSpiWriteReg(BYTE addr, BYTE value);




//-------------------------------------------------------------------------------------------------------
//  BYTE halSpiReadReg(BYTE addr)
//
//  DESCRIPTION:
//      This function gets the value of a single specified CCxxx0 register.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the CCxxx0 register to be accessed.
//
//  RETURN VALUE:
//      BYTE
//          Value of the accessed CCxxx0 register.
//-------------------------------------------------------------------------------------------------------
BYTE halSpiReadReg(BYTE addr);




//-------------------------------------------------------------------------------------------------------
//  void halSpiWriteBurstReg(BYTE addr, BYTE *buffer, BYTE count)
//
//  DESCRIPTION:
//      This function writes to multiple CCxxx0 register, using SPI burst access.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the first CCxxx0 register to be accessed.
//      BYTE *buffer
//          Array of bytes to be written into a corresponding range of
//          CCxx00 registers, starting by the address specified in _addr_.
//      BYTE count
//          Number of bytes to be written to the subsequent CCxxx0 registers.   
//-------------------------------------------------------------------------------------------------------
void halSpiWriteBurstReg(BYTE addr, BYTE *buffer, BYTE count);




//-------------------------------------------------------------------------------------------------------
//  void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count)
//
//  DESCRIPTION:
//      This function reads multiple CCxxx0 register, using SPI burst access.
//
//  ARGUMENTS:
//      BYTE addr
//          Address of the first CCxxx0 register to be accessed.
//      BYTE *buffer
//          Pointer to a byte array which stores the values read from a
//          corresponding range of CCxxx0 registers.
//      BYTE count
//          Number of bytes to be read from the subsequent CCxxx0 registers.
//-------------------------------------------------------------------------------------------------------
void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count);




//-------------------------------------------------------------------------------------------------------
// Macro to reset the CCxxx0 and wait for it to be ready

#define RESET_CCxxx0() \
    do { \
        SPI_ENABLE(); \
        while ((PINB&0x08)); \
        SPDR = CCxxx0_SRES; \
        FASTSPI_WAIT(); \
        while ((PINB&0x08)); \
        SPI_DISABLE(); \
    } while (0)

//-------------------------------------------------------------------------------------------------------




//-------------------------------------------------------------------------------------------------------
// Macro to reset the CCxxx0 after power_on and wait for it to be ready
// IMPORTANT NOTICE:
// The file Wait.c must be included if this macro shall be used
// The file is located under: ..\Lib\Chipcon\Hal\CCxx00
//
//                 min 40 us
//                 <------------------>
// CSn      |--|  |--------------------|            |-----
//          |  |  |                    |            |
//              --                      ------------
//
// MISO                                     |----|
//          -----------------------------|  |    |
//                                        --      ---------
//               Unknown / don't care
//                                       SRES     done
//

   
#if 1
#define POWER_UP_RESET_CCxxx0() \
    do { \
        SPI_DISABLE(); \
        halWait(1); \
        SPI_ENABLE(); \
        halWait(1); \
        SPI_DISABLE(); \
        halWait(41); \
        RESET_CCxxx0(); \
    } while (0)
#endif
    

//-------------------------------------------------------------------------------------------------------



/*******************************************************************************************************
 *******************************************************************************************************
 **************************        RF communication functions/macros        ****************************
 *******************************************************************************************************
 *******************************************************************************************************/
//-------------------------------------------------------------------------------------------------------
// This section contains functions used to write rf settings to CCxxx0, and for sending and 
// receiving a packet.
//      void RfWriteRfSettings(RF_SETTINGS *pRfSettings);
//      void halRfSendPacket(BYTE *txBuffer, UINT8 size);
//      BOOL halRfReceivePacket(BYTE *rxBuffer, UINT8 *length)
//-------------------------------------------------------------------------------------------------------



 
//-------------------------------------------------------------------------------------------------------
// RF_SETTINGS is a data structure which contains all relevant CCxxx0 registers
typedef struct S_RF_SETTINGS{

    BYTE FSCTRL1;   // Frequency synthesizer control.
    BYTE FSCTRL0;   // Frequency synthesizer control.
    BYTE FREQ2;     // Frequency control word, high byte.
    BYTE FREQ1;     // Frequency control word, middle byte.
    BYTE FREQ0;     // Frequency control word, low byte.
    BYTE MDMCFG4;   // Modem configuration.
    BYTE MDMCFG3;   // Modem configuration.
    BYTE MDMCFG2;   // Modem configuration.
    BYTE MDMCFG1;   // Modem configuration.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩精品在线| 色妞www精品视频| 欧美精品一区二区三区视频| 日本不卡一区二区三区高清视频| 欧美一区中文字幕| 国产一区二区在线视频| 中文字幕一区二区三区蜜月 | 天堂资源在线中文精品| 91麻豆精品国产91久久久久久久久| 美女视频网站久久| 国产欧美一区二区精品性| 99国产精品久久久久久久久久久| 亚洲福利视频一区二区| 日韩免费观看高清完整版在线观看| 狠狠狠色丁香婷婷综合久久五月| 国产日韩欧美高清| 在线视频欧美区| 久久不见久久见免费视频7| 中文字幕免费不卡| 欧美日韩在线播放三区四区| 精品一区二区在线观看| 亚洲色图视频网站| 欧美变态tickling挠脚心| 成人精品gif动图一区| 亚洲bt欧美bt精品777| 国产网红主播福利一区二区| 色域天天综合网| 国内成人免费视频| 亚洲国产色一区| 中文字幕 久热精品 视频在线| 91国模大尺度私拍在线视频| 国产一区二区免费看| 亚洲国产精品自拍| 国产精品麻豆视频| 精品福利二区三区| 欧美日韩在线一区二区| 成人免费三级在线| 蜜桃av一区二区三区电影| 亚洲视频1区2区| 久久久久九九视频| 欧美一区二区三区成人| 99久久99久久精品免费观看| 麻豆成人久久精品二区三区红| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91精品国产欧美一区二区| 91美女视频网站| 成人av免费在线| 国产麻豆精品一区二区| 日产精品久久久久久久性色| 亚洲女厕所小便bbb| 中文字幕高清一区| 精品久久五月天| 精品视频一区三区九区| 色呦呦一区二区三区| 国产成人在线电影| 国产一区二区成人久久免费影院| 青青草国产成人av片免费| 亚洲五码中文字幕| 亚洲精品乱码久久久久久| 国产精品久久午夜夜伦鲁鲁| 久久久99精品免费观看| 精品久久久久久久人人人人传媒| 欧美肥妇free| 欧美日本免费一区二区三区| 欧美在线制服丝袜| 色哟哟亚洲精品| 色婷婷久久久综合中文字幕| 成人国产亚洲欧美成人综合网 | 国产欧美日本一区二区三区| 欧美一区二区三区视频| 91精品国产综合久久精品麻豆 | 久久免费看少妇高潮| 精品国产电影一区二区| 精品国产伦一区二区三区观看方式| 69堂国产成人免费视频| 欧美日韩免费在线视频| 欧美二区三区91| 91精品欧美综合在线观看最新| 91麻豆精品久久久久蜜臀| 欧美精品久久久久久久多人混战| 91精品国产欧美一区二区成人| 日韩一二三区视频| 日韩精品一区二区三区四区| 久久综合丝袜日本网| 国产欧美中文在线| 亚洲免费av在线| 三级亚洲高清视频| 国产一区欧美二区| 国产91精品一区二区麻豆亚洲| 成人激情黄色小说| 欧洲精品在线观看| 91精品久久久久久久99蜜桃| 精品久久免费看| 国产精品美女久久福利网站 | 亚洲高清视频在线| 美腿丝袜亚洲色图| 国产91精品一区二区| 91国产免费看| 欧美一区三区四区| 国产婷婷色一区二区三区四区| 成人欧美一区二区三区1314| 亚洲国产精品久久久久秋霞影院| 免播放器亚洲一区| 成人激情免费电影网址| 欧美亚洲尤物久久| 久久色.com| 一区二区在线观看视频在线观看| 青青草一区二区三区| 成人avav影音| 欧美一区二区三区影视| 欧美国产精品专区| 爽爽淫人综合网网站| 国产成人精品三级| 欧美日韩一本到| 久久精品一区二区三区不卡| 一区二区三区高清| 国产高清不卡一区| 欧美日高清视频| 欧美高清一级片在线观看| 三级在线观看一区二区| 白白色 亚洲乱淫| 欧美一卡二卡在线| 一区二区视频在线看| 国产又黄又大久久| 9191久久久久久久久久久| 成人欧美一区二区三区| 国产一区欧美日韩| 欧美一级理论片| 亚洲摸摸操操av| 成人免费视频app| 精品国产污污免费网站入口 | 久久精品一区二区三区不卡 | 久久成人综合网| 欧美午夜精品电影| 国产精品久久久久一区二区三区共| 秋霞影院一区二区| 欧美在线免费播放| 亚洲欧美日韩中文字幕一区二区三区| 精久久久久久久久久久| 8x福利精品第一导航| 亚洲一区二区三区四区中文字幕| 国产成人鲁色资源国产91色综| 欧美一区二区三区视频在线| 亚洲一区在线视频观看| 99这里只有久久精品视频| 久久先锋影音av| 老司机午夜精品| 91精品国模一区二区三区| 亚洲成在线观看| 欧美色中文字幕| 尤物在线观看一区| 91久久精品一区二区| 中文字幕一区二区三区乱码在线| 国产精品538一区二区在线| 精品国产凹凸成av人导航| 奇米在线7777在线精品| 91麻豆精品国产91久久久久久| 性久久久久久久久| 精品1区2区3区| 性欧美大战久久久久久久久| 欧美日韩高清在线| 日日骚欧美日韩| 欧美一区二区视频免费观看| 日韩一区精品视频| 91精品国产乱码| 久久爱www久久做| 久久综合久久鬼色| 国产成人自拍在线| 中文字幕一区二区日韩精品绯色| a在线播放不卡| 亚洲激情av在线| 欧美日韩国产不卡| 另类成人小视频在线| 久久久三级国产网站| 成人av手机在线观看| 一区二区三区四区不卡视频 | 日韩免费电影一区| 精品综合久久久久久8888| 久久午夜免费电影| 不卡在线观看av| 一区二区三区在线高清| 欧美体内she精高潮| 免费在线看成人av| 国产日产欧美一区二区三区| aaa亚洲精品| 日韩中文字幕一区二区三区| 日韩欧美电影一二三| 国产精品69毛片高清亚洲| 亚洲欧洲国产日本综合| 欧美日韩成人综合天天影院 | 成人激情黄色小说| 亚洲制服丝袜一区| 精品乱人伦小说| 91视频观看免费| 日韩成人免费电影| 欧美激情在线一区二区三区| 在线精品视频小说1| 精品一区二区三区的国产在线播放| 国产日韩av一区二区| 欧美亚洲动漫另类|