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

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

?? rf_hal.c

?? 基于CC1100和ATMEGA128開發的無線機器人控制程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*******************************************************************************************************
 * Compiler:                WINAVR                                                             *
 * Target platform:         Chipcon CCxxx0 (any ATMEGA MCU)                                               *
 * Author:                  WangChaoyan                                                                       *
 *******************************************************************************************************
 * Revision history:                                                                 *
 ******************************************************************************************************/

#include "include.h"
#include "halsrf04.h"

extern RF_SETTINGS rfSettings;

extern BYTE paTable[1];

//-------------------------------------------------------------------------------------------------------
// Defines
#define GDO0_PIN        (PIND & 0x01)  
#define GDO2_PIN        (PIND & 0x02)           
#define MISO_1		(PINB & 0x08)

#define CRC_OK              0x80  

#define RSSI                0
#define LQI                 1
#define BYTES_IN_RXFIFO     0x7F        

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


//extern unsigned char RxEnFlag;

//-------------------------------------------------------------------------------------------------------
//  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) {
    UINT8 x;
    SPI_ENABLE(); 
    NOP();
    while(MISO_1);
    NOP();
    FASTSPI_TX(addr | READ_SINGLE);
    FASTSPI_RX(x);
    NOP();
    
    SPI_DISABLE(); 
    
    return x;
}// halSpiReadReg

//-------------------------------------------------------------------------------------------------------
//  BYTE halSpiReadStatus(BYTE addr)
// 讀CC1100 狀態寄存器
//  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) {
    UINT8 x;
  
    SPI_ENABLE(); 
    NOP();
    while(MISO_1);
    NOP();
    FASTSPI_TX(addr | READ_BURST);
    FASTSPI_RX(x);
    NOP();
    SPI_DISABLE(); 
    
    return x;
}// halSpiReadStatus


//-------------------------------------------------------------------------------------------------------
//  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 written to the subsequent CCxxx0 registers.
//-------------------------------------------------------------------------------------------------------
void halSpiReadBurstReg(BYTE addr, BYTE *buffer, BYTE count) {
    UINT8 i;
    SPI_ENABLE(); 
    while(MISO_1);
    NOP();
    FASTSPI_TX(addr | READ_BURST);
    for (i = 0; i < count; i++) 
    {
    	FASTSPI_RX(buffer[i]);
	
  	}
  	
    NOP(); 
    SPI_DISABLE(); 
    
    buffer[i] = 0;		// add a terminal char
}// halSpiReadBurstReg


//-------------------------------------------------------------------------------------------------------
//  void halSpiStrobe(BYTE strobe)
//	發送命令字節
//  DESCRIPTION:
//      Function for writing a strobe command to the CCxxx0
//
//  ARGUMENTS:
//      BYTE strobe
//          Strobe command
//-------------------------------------------------------------------------------------------------------
void halSpiStrobe(BYTE strobe) {
	
	 			SPI_ENABLE(); 
	 			NOP();
 				while(MISO_1);
 				NOP();
        FASTSPI_TX(strobe); 
				NOP();
        SPI_DISABLE(); 
 //  FASTSPI_STROBE(strobe);
}// halSpiStrobe


//-------------------------------------------------------------------------------------------------------
//  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) {
 				SPI_ENABLE(); 
 				NOP();
 				while(MISO_1);
        NOP(); 
        FASTSPI_TX(addr); 
        FASTSPI_TX(value);
        NOP(); 
        SPI_DISABLE(); 
}// halSpiWriteReg


//-------------------------------------------------------------------------------------------------------
//  void RfWriteRfSettings(RF_SETTINGS *pRfSettings)
// 設置寄存器
//  DESCRIPTION:
//      This function is used to configure the CC2500 based on a given rf setting
//
//  ARGUMENTS:
//      RF_SETTINGS *pRfSettings
//          Pointer to a struct containing rf register settings
//-------------------------------------------------------------------------------------------------------
void halRfWriteRfSettings(RF_SETTINGS *pRfSettings) {

    // Write register settings
    halSpiWriteReg(CCxxx0_FSCTRL1,  pRfSettings->FSCTRL1);
    halSpiWriteReg(CCxxx0_FSCTRL0,  pRfSettings->FSCTRL0);
    halSpiWriteReg(CCxxx0_FREQ2,    pRfSettings->FREQ2);
    halSpiWriteReg(CCxxx0_FREQ1,    pRfSettings->FREQ1);
    halSpiWriteReg(CCxxx0_FREQ0,    pRfSettings->FREQ0);
    halSpiWriteReg(CCxxx0_MDMCFG4,  pRfSettings->MDMCFG4);
    halSpiWriteReg(CCxxx0_MDMCFG3,  pRfSettings->MDMCFG3);
    halSpiWriteReg(CCxxx0_MDMCFG2,  pRfSettings->MDMCFG2);
    halSpiWriteReg(CCxxx0_MDMCFG1,  pRfSettings->MDMCFG1);
    halSpiWriteReg(CCxxx0_MDMCFG0,  pRfSettings->MDMCFG0);
    halSpiWriteReg(CCxxx0_CHANNR,   pRfSettings->CHANNR);
    halSpiWriteReg(CCxxx0_DEVIATN,  pRfSettings->DEVIATN);
    halSpiWriteReg(CCxxx0_FREND1,   pRfSettings->FREND1);
    halSpiWriteReg(CCxxx0_FREND0,   pRfSettings->FREND0);
      
    halSpiWriteReg(CCxxx0_MCSM0 ,   pRfSettings->MCSM0 );
    halSpiWriteReg(CCxxx0_FOCCFG,   pRfSettings->FOCCFG);
    halSpiWriteReg(CCxxx0_BSCFG,    pRfSettings->BSCFG);
    halSpiWriteReg(CCxxx0_AGCCTRL2, pRfSettings->AGCCTRL2);
	halSpiWriteReg(CCxxx0_AGCCTRL1, pRfSettings->AGCCTRL1);
    halSpiWriteReg(CCxxx0_AGCCTRL0, pRfSettings->AGCCTRL0);
    halSpiWriteReg(CCxxx0_FSCAL3,   pRfSettings->FSCAL3);
    halSpiWriteReg(CCxxx0_FSCAL2,   pRfSettings->FSCAL2);
	halSpiWriteReg(CCxxx0_FSCAL1,   pRfSettings->FSCAL1);
    halSpiWriteReg(CCxxx0_FSCAL0,   pRfSettings->FSCAL0);
    halSpiWriteReg(CCxxx0_FSTEST,   pRfSettings->FSTEST);
    halSpiWriteReg(CCxxx0_TEST2,    pRfSettings->TEST2);
    halSpiWriteReg(CCxxx0_TEST1,    pRfSettings->TEST1);
    halSpiWriteReg(CCxxx0_TEST0,    pRfSettings->TEST0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品高清在线| 欧美一区二区视频在线观看2020| 91婷婷韩国欧美一区二区| 欧美在线看片a免费观看| 日韩欧美国产精品| 亚洲欧洲精品天堂一级 | 99国产精品国产精品毛片| 91福利精品视频| 久久久精品人体av艺术| 亚洲第一在线综合网站| 99免费精品视频| 亚洲精品一区二区三区蜜桃下载| 亚洲一区二区三区激情| 国产精品1区2区| 欧美一区午夜精品| 亚洲综合激情另类小说区| 国产成人免费视频网站| 日韩一区二区三区视频在线观看| 亚洲人午夜精品天堂一二香蕉| 精品无码三级在线观看视频| 欧美日韩国产免费一区二区| 亚洲精品日日夜夜| 国产69精品久久久久777| 久久综合久久99| 青椒成人免费视频| 欧美日韩五月天| 亚洲曰韩产成在线| 91黄色免费观看| 亚洲欧美日本在线| 99久久精品国产网站| 国产欧美一区二区精品婷婷| 国产精品资源站在线| 欧美xxxxxxxxx| 久色婷婷小香蕉久久| 91精品国产综合久久婷婷香蕉 | 麻豆久久一区二区| 欧美精品tushy高清| 亚洲成人综合在线| 欧美日韩一二三| 日韩精品一级二级 | 91在线播放网址| 国产精品免费看片| 99国产精品久久久久久久久久| 国产拍欧美日韩视频二区| 国产精品综合视频| 国产女主播一区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 中文字幕一区二区在线观看| a级精品国产片在线观看| 国产精品视频观看| 色综合天天综合网天天狠天天 | 麻豆国产欧美日韩综合精品二区| 91精品国产麻豆| 国内成人自拍视频| 亚洲国产精品高清| 色妹子一区二区| 亚洲午夜精品在线| 欧美大片一区二区三区| 国产福利一区在线观看| 国产精品美女久久久久av爽李琼 | 国产激情91久久精品导航| 中文字幕日韩一区| 欧美日韩一级二级| 激情伊人五月天久久综合| 国产区在线观看成人精品| 99久久精品免费看| 日韩av电影免费观看高清完整版在线观看| 欧美成人精品福利| 91丨九色丨蝌蚪富婆spa| 亚洲高清免费一级二级三级| 精品国产凹凸成av人网站| 风间由美一区二区三区在线观看| 亚洲婷婷在线视频| 日韩视频免费观看高清完整版| 国产黄色精品视频| 亚洲永久精品国产| 久久久高清一区二区三区| 色天天综合色天天久久| 狠狠色丁香九九婷婷综合五月| 亚洲精品水蜜桃| 日韩免费看网站| 99re亚洲国产精品| 久久成人免费网站| 一区二区在线电影| 久久老女人爱爱| 337p亚洲精品色噜噜狠狠| 国产成人精品免费| 日韩不卡手机在线v区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 精品视频全国免费看| 国产精品亚洲人在线观看| 亚洲一区中文日韩| 国产精品久久久久久久久搜平片| 91精品在线免费| 色哟哟一区二区| 国产99精品国产| 美国十次综合导航| 亚洲五码中文字幕| 亚洲色图色小说| 久久久亚洲高清| 日韩一区二区三| 欧美日韩视频在线观看一区二区三区| 国产成人av一区二区三区在线观看| 天天综合日日夜夜精品| 一区二区免费视频| 国产精品乱码一区二三区小蝌蚪| 日韩免费视频线观看| 精品视频1区2区3区| 91国产精品成人| 91日韩一区二区三区| 风间由美一区二区三区在线观看 | 91亚洲精品久久久蜜桃网站| 精品一区二区三区久久久| 日韩精品91亚洲二区在线观看| 亚洲九九爱视频| 亚洲乱码精品一二三四区日韩在线| 国产欧美日韩精品a在线观看| 亚洲精品在线观看网站| 日韩欧美高清一区| 欧美丰满美乳xxx高潮www| 欧美日韩国产小视频在线观看| 色综合久久99| 色婷婷一区二区三区四区| 91在线国产福利| 日本高清不卡一区| 欧美在线一二三| 在线播放91灌醉迷j高跟美女| 欧美日本高清视频在线观看| 欧美色偷偷大香| 91精品国产欧美一区二区| 欧美一区二区视频观看视频| 欧美一区二区三区电影| 欧美一级国产精品| 久久久久高清精品| 国产女同性恋一区二区| 综合分类小说区另类春色亚洲小说欧美 | 欧美一级日韩一级| 日韩美女视频在线| 国产午夜精品久久久久久久 | 精品国产乱码久久久久久老虎| 精品精品国产高清a毛片牛牛 | 国产精品麻豆网站| 亚洲欧美日韩人成在线播放| 亚洲一区二区3| 看电影不卡的网站| 成人av免费网站| 欧美午夜不卡视频| 26uuu亚洲综合色| 亚洲婷婷国产精品电影人久久| 亚洲国产一二三| 精品一区二区三区免费观看| www.在线成人| 欧美一区二区三区四区高清| 久久久久久久久免费| 亚洲女厕所小便bbb| 日韩在线一区二区| 成人精品gif动图一区| 欧美日韩精品欧美日韩精品一综合| 欧美一卡二卡三卡| ●精品国产综合乱码久久久久 | 国产精品国产自产拍高清av| av亚洲精华国产精华| 欧美福利视频一区| 精品国产精品一区二区夜夜嗨| 国产精品网站一区| 日韩电影在线一区二区三区| 国产精品亚洲视频| 91精品国产色综合久久不卡电影| 国产精品久久久久影院亚瑟| 三级影片在线观看欧美日韩一区二区 | 亚洲色图在线播放| 免费高清视频精品| 在线观看视频一区| 国产日韩欧美精品综合| 日韩成人一级大片| 色诱亚洲精品久久久久久| 久久精品夜色噜噜亚洲a∨| 亚洲不卡av一区二区三区| 国产成人免费av在线| 欧美一区中文字幕| 亚洲综合久久久| www.66久久| 国产欧美视频在线观看| 精品一区在线看| 欧美日韩大陆一区二区| 日韩码欧中文字| 懂色av一区二区在线播放| 日韩一区二区三区av| 亚洲第一综合色| 欧美午夜影院一区| 亚洲精品精品亚洲| 波多野结衣精品在线| 亚洲国产精品成人久久综合一区 | 91亚洲资源网| 中文字幕第一页久久| 韩国成人福利片在线播放| 欧美一区二区观看视频| 亚洲成人精品一区| 5月丁香婷婷综合| 日本大胆欧美人术艺术动态 |