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

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

?? f360_cc1100.c

?? 使用C8051F360高速單片機加無線收發芯片CC1100實現的無線語音通信的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
//-----------------------------------------------------------------------------
// Wireless Voice Transmitter/Receiver with C8051F360
//-----------------------------------------------------------------------------
//
// This software system is written to control the PCB designed with C8051F360.
//

//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <c8051f360.h>                 // SFR declarations
#include <intrins.h>                   // includes the _nop_() command

//-----------------------------------------------------------------------------
// Global CONSTANTS
//-----------------------------------------------------------------------------


#define SYSCLK 24500000                // speed of internal clock
#define SAMPLE_RATE 8000               // sampling rate for the ADC
#define SPI_DATARATE 153600            // used for timing in SPI state machine

#define TransmitFIFO_FIFOSIZE   236         // sets the size of data buffers
#define ReceiveFIFO_FIFOSIZE   236
#define ADCRXFIFO_FIFOSIZE 10
#define DACTXFIFO_FIFOSIZE 10


#define DAC_UPDATERATE 8000             // rate of DAC sample output

// Transmission-Related Constants
#define RXTX_BytesOfData 200           // number of bytes of compressed audio
                                       // data to be transmitted per data
                                       // packet


#define TransmitFIFO_TARGET 200             // target size of TransmitFIFO, used to make
                                       // sampling rate adjustments to avoid
                                       // FIFO over- and underflows

#define ReceiveFIFO_TARGET 10              // target size of ReceiveFIFO, used to make
                                       // sampling rate adjustments to avoid
                                       // FIFO over- and underflows


#define RXTX_NoPreambleLevel 20        // consecutive number of data packets
                                       // that will be missed before the
                                       // RF signal is considered lost and
                                       // transmission shuts down


#define I_TX 0x02                      // this value is written to the RF
                                       // transceiver's Interface register when
                                       // the RF switch is to be placed in the
                                       // TX position
#define I_RX 0x01                      // this value is written to the RF
                                       // transceiver's Interface register when
                                       // the RF switch is to be placed in the
                                       // RX position



#define Audio_QuietThreshold 2         // difference threshold in ADC codes
                                       // between two consecutive samples that
                                       // is used to determine whether a
                                       // signal is "loud" enough to transmit


#define AudioStateQuietToLoud 10       // number of instances where
                                       // the difference between consecutive
                                       // ADC samples is GREATER than
                                       // <Audio_QuietThreshold> that must be
                                       // accumulated before a "quiet"
                                       // audio signal should be considered
                                       // "loud"

#define AudioStateLoudToQuiet 400      // number of instances where
                                       // the difference between consecutive
                                       // ADC samples is LESS than
                                       // <Audio_QuietThreshold> that must
                                       // CONSECUTIVELY occur before a "loud"
                                       // audio  signal should be considered
                                       // "quiet"

#define RX_MinBytesInitPreamble 5      // number of consecutively received
                                       // preamble bytes that must be received
                                       // before the incoming data for the
                                       // first received packet can be
                                       // considered valid

#define TX_NumBytesInitPreamble 50     // number of preamble bytes sent during
                                       // a RXTX_Master's first data packet
                                       // transmission

#define TX_NumBytesPreamble 8          // number of preamble bytes transmitted
                                       // before each data packet, excluding
                                       // the RXTX_Master's first packet

#define RX_MinBytesPreamble 2         // minimum number of preamble bytes
                                       // the must be received before incoming
                                       // data can be considered valid,
                                       // excluding the reception of the
                                       // RXTX_Master's first packet


#define RXTX_SyncWordSize 3            // used to re-sync the slave <SPI_Timer>

#define Audio_StateSize   1            // used to re-sync the slave <SPI_Timer>



#define DPCM_MULTIPLIER 2              // used to amplify the decompressed
                                       // audio samples


// 10-bit DPCM quantization codes
#define low_low 1
#define low_mid 2
#define low_high 4
#define middle 8
#define high_low 16
#define high_mid 32
#define high_high 64


//-----------------------------------------------------------------------------
// CC1100 Registers
//-----------------------------------------------------------------------------
#define  MAIN            0x00
#define  INTERFACE       0x01
#define  RESETT          0x02
#define  SEQUENCING      0x03
#define  FREQ_2A         0x04
#define  FREQ_1A         0x05
#define  FREQ_0A         0x06
#define  CLOCK_A         0x07
#define  FREQ_2B         0x08
#define  FREQ_1B         0x09
#define  FREQ_0B         0x0A
#define  CLOCK_B         0x0B
#define  VCO             0x0C
#define  MODEM           0x0D
#define  DEVIATION       0x0E
#define  AFC_CONTROL     0x0F
#define  FILTER          0x10
#define  VGA1            0x11
#define  VGA2            0x12
#define  VGA3            0x13
#define  VGA4            0x14
#define  LOCK            0x15
#define  FRONTEND        0x16
#define  ANALOG          0x17
#define  BUFF_SWING      0x18
#define  BUFF_CURRENT    0x19
#define  PLL_BW          0x1A
#define  CALIBRATE       0x1B
#define  PA_POWER        0x1C
#define  MATCH           0x1D
#define  PHASE_COMP      0x1E
#define  GAIN_COMP       0x1F
#define  POWERDOWN       0x20
#define  TEST1           0x21
#define  TEST2           0x22
#define  TEST3           0x23
#define  TEST4           0x24
#define  TEST5           0x25
#define  TEST6           0x26
#define  TEST7           0x27
#define  STATUS          0x40
#define  RESET_DONE      0x41
#define  RSS             0x42
#define  AFC             0x43
#define  GAUSS_FILTER    0x44
#define  STATUS1         0x45
#define  STATUS2         0x46
#define  STATUS3         0x47
#define  STATUS4         0x48
#define  STATUS5         0x49
#define  STATUS6         0x4A
#define  STATUS7         0x4B

#define  TEST_NFC        0x28


//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F33x
//-----------------------------------------------------------------------------

sfr16 DP       = 0x82;                 // data pointer
sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
sfr16 TMR3     = 0x94;                 // Timer3 counter
sfr16 IDA0     = 0x96;                 // IDAC0 data
sfr16 ADC0     = 0xbd;                 // ADC0 data
sfr16 ADC0GT   = 0xc3;                 // ADC0 Greater-Than
sfr16 ADC0LT   = 0xc5;                 // ADC0 Less-Than
sfr16 TMR2RL   = 0xca;                 // Timer2 reload value
sfr16 TMR2     = 0xcc;                 // Timer2 counter
sfr16 PCA0CP1  = 0xe9;                 // PCA0 Module 1 Capture/Compare
sfr16 PCA0CP2  = 0xeb;                 // PCA0 Module 2 Capture/Compare
sfr16 PCA0     = 0xf9;                 // PCA0 counter
sfr16 PCA0CP0  = 0xfb;                 // PCA0 Module 0 Capture/Compare



//-----------------------------------------------------------------------------
// Function PROTOTYPES
//-----------------------------------------------------------------------------
void SYSCLK_Init (void);               // initialize system clock to 24.5 MHz
void PORT_Init (void);                 // initialize crossbar
void ADC0_Init (void);                 // ADC captures on Tmr2 overflows
                                       // interrupts enabled
void Timer0_Init(void);                // used for  WaitUS()
void Timer2_Init (unsigned int);       // ADC start-of-conversion clock source
void Timer3_Init(unsigned int);        // sets DAC output rate
void IDAC0_Init(void);                 // enables IDAC output on P0.1
void SPI_Init(void);                   // enable 3-wire Slave SPI for RF trans.
                                       // DATA interface
void Variables_Init(void);             // set global variables to reset values

void PCA0_Init(void);                  // configure PCA0 to edge-triggered
                                       // capture mode

void Timer3_ISR (void);                // updates the DAC
void UART0_ISR (void);                 // RX and TX with RF transceiver
void ADC0_ISR (void);                  // checks for a quiet signal,
                                       // pushes samples onto ADCRXFIFO
// FIFO Routines
unsigned char TransmitFIFO_Pull();          // pulls compressed sample to be TXed
unsigned char ReceiveFIFO_Pull();          // pulls RXed compressed sample
unsigned short ADCRXFIFO_Pull();       // pulls ADC sample
unsigned short DACTXFIFO_Pull();       // pulls decompressed sample
void TransmitFIFO_Push(unsigned char);      // pushes compressed sample to be TXed
void ReceiveFIFO_Push(unsigned char);      // pushes RXed compressed sample
void ADCRXFIFO_Push(unsigned short);   // pushes ADC sample
void DACTXFIFO_Push(unsigned short);   // pushes decompressed sample
unsigned short ADCRXFIFO_Newest(void); // returns the value most recently
                                       // pushed onto the ADC FIFO, but does
                                       // not alter any of the index values

void CLEAR_FIFOS(void);                // resets all FIFOs to default values

// DPCM Compression Algorithms
void DPCM_Decompress(void);            // Compresses an ADC sample
void DPCM_Compress(void);              // Decompresses received samples

// RF Transceiver Register Routines
void SETREG(unsigned char, unsigned char);
                                       // updates register to value parameter

unsigned char READREG(unsigned char);  // return register value
unsigned char CC1100_Init(void);       // initializes RF transceiver
void CC1100_SwitchToRX(void);          // sets RF transceiver settings to RX
void CC1100_SwitchToTX(void);          // sets RF transceiver settings to TX
void C1020_POWERDOWN(void);            // shuts down components of the RF
                                       // transceiver to conserve power

void ASLEEP(void);                     // function that runs when the
                                       // communications channel is idle
void WaitUS(unsigned int);             // function will delay controller
                                       // for a set number of microseconds
void WaitMS_360(unsigned int);

void FIFO_ManagementRoutine(void);     // encapsulates all foreground function
                                       // calls concerning buffers, and
                                       // all checks and tests on buffer
                                       // sizes

void RXTX_InitMaster(void);
void RXTX_InitSlave(void);


//-----------------------------------------------------------------------------
// User-Defined Types
//-----------------------------------------------------------------------------


typedef union USHORT {                 // access a short variable as two
      unsigned short S;                // 8-bit integer values
      unsigned char C[2];
   } USHORT;

enum Logic{ FALSE, TRUE};

enum RXTX_Classes{
   RXTX_Master,
   // designates the endpoint that initiates the creation of the Communication
   // Channel

   RXTX_Slave,
   // designates the endpoint that joins an initiated Communication Channel

   RXTX_Searching
   // designates an endpoint that is searching for a master

};

typedef enum RXTX_StateMachineStates {

   RX_SearchForMaster,
   // Search for <RX_MinBytesInitPreamble> consecutive preamble bytes in
   // the RF transceiver's output data stream

   TX_InitPreamble,
   // Transmit <TX_NumBytesInitPreamble> preamble bytes before transmitting
   // the first data packet

   TX_Preamble,
   // Transmit <TX_NumBytesPreamble> preamble bytes

   TX_SyncWord,
   // Transmit sync word 0xFFFFEE

   TX_SwitchTime,
   // Delay for a time period specified in the SPI ISR's Transmission State
   // Machine, using the timer variable <SPI_Timer> as the time base

   TX_AudioState,
   // Transmit local shutdown state

   TX_Data,
   // Transmit <RXTX_BytesOfData> bytes from the TransmitFIFO

   RX_Preamble,
   // Search for <RX_MinBytesPreamble> consecutive bytes of received preamble

   RX_SyncWord,
   // Search for and synchronize receiver to the sync word 0xFFFFEE

   RX_AudioState,
   // Receive the remote (transmitter's) Shutdown State

   RX_Data,
   // Receive <RXTX_BytesOfData> bytes and push each to the ReceiveFIFO

   RXTX_TimeOut,
   // state is entered when <SPI_TIMER> times out.  Variable
   // <TimeOut_EntryMode> should be set before entering state <RXTX_TimeOut>


   Switch_ToTX01,
   Switch_ToTX02,
   Switch_ToTX03,
   Switch_ToTX04,
   Switch_ToTX05,
   Switch_ToTX06,
   Switch_ToTX07,
   // These states configure the RF Transceiver to its transmit mode

   Switch_ToRX01,
   Switch_ToRX02,
   Switch_ToRX03,
   Switch_ToRX04,
   Switch_ToRX05,
   Switch_ToRX06,
   // These states configure the RF Transceiver to its receive mode

   RXTX_WaitForTimeOut,
   // this state will pause state machine progress until the
   // RXTX_StateMachine's time base <SPI_Timer> reaches its time-out value

   RXTX_Shutdown,
   // Entered when the Communication Channel is to be terminated

   Uninitialized
   // Reset state of the RF state machine

} RXTX_StateMachineStates;

typedef enum TimeOut_EntryModes{
   TimeOut_RXSuccessful,
   // indicates that the state machine has just successfully completed the
   // reception of a data packet

   TimeOut_TXSuccessful,
   // indicates that the state machine has just successfully completed the
   // transmission of a data packet

   TimeOut_RXNoPreamble,
   // state machine failed to find the minimum number of bytes of preamble
   // needed to determine that a valid data packet has been received before
   // SPI_Timer reached its terminal value

   TimeOut_RXNoSyncWord
   // state machine failed to find a valid Sync Word before SPI_Timer reached
   // its terminal value

} TimeOut_EntryModes;



typedef enum Audio_States{
   Audio_Quiet = 0x10,
   // state indicates that audio is below the audible threshold

   Audio_Loud = 0x30,
   // audio is above audible threshold

   Audio_ChannelShutdown = 0x40
   // special state transmitted after both Endpoints' Audio States have
   // been set to

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美日韩一区二区| 亚洲香肠在线观看| 成人黄色网址在线观看| 国产精品美女www爽爽爽| 成人午夜视频网站| 一区二区三区欧美日韩| a亚洲天堂av| 一区二区日韩电影| 日韩一区二区三区视频在线| 国产乱码精品一区二区三区五月婷| 久久尤物电影视频在线观看| 国产成人免费视频| 有码一区二区三区| 精品国产三级电影在线观看| www.在线成人| 午夜国产精品影院在线观看| 久久女同互慰一区二区三区| a美女胸又www黄视频久久| 亚洲国产日韩a在线播放性色| 91精品久久久久久久91蜜桃| 国产成人免费在线观看不卡| 一区二区三区欧美激情| 欧美成人欧美edvon| 91美女在线看| 久国产精品韩国三级视频| 国产精品精品国产色婷婷| 欧美视频一区二区三区四区 | 亚洲男人的天堂av| 欧美久久久久久久久久| 国产成人精品免费在线| 亚洲福利一区二区| 国产欧美综合在线| 777a∨成人精品桃花网| 99久久精品费精品国产一区二区| 免费一级欧美片在线观看| 亚洲啪啪综合av一区二区三区| 欧美一级生活片| 色噜噜狠狠色综合欧洲selulu| 欧美日韩综合不卡| 美女性感视频久久| 亚洲欧美在线视频观看| 欧美高清视频不卡网| 国产成人啪免费观看软件| 亚洲高清免费视频| 中文字幕中文字幕在线一区| 日韩免费视频一区| 精品视频在线免费观看| 成人va在线观看| 国产剧情一区在线| 蜜臀久久99精品久久久画质超高清 | 一区二区视频在线| 国产亚洲欧美日韩在线一区| 91精品国产综合久久精品性色| 亚洲成人免费影院| 中文字幕一区视频| 国产欧美一区视频| 欧美成人福利视频| 日韩片之四级片| 欧美一区二区久久| 色综合天天综合色综合av| 国产成人啪免费观看软件| 精品一区二区三区日韩| 亚洲gay无套男同| 一区二区三区中文字幕| 亚洲人成电影网站色mp4| 中文字幕欧美日韩一区| 亚洲国产精品精华液2区45| 久久日韩粉嫩一区二区三区| 日韩欧美激情在线| 日韩精品一区二区三区蜜臀 | 亚洲精品美腿丝袜| 1000精品久久久久久久久| 国产精品不卡视频| 亚洲视频1区2区| 一区二区三区免费| 亚洲一区二区在线视频| 亚洲国产精品视频| 日韩国产高清在线| 蜜臀精品久久久久久蜜臀| 美日韩一区二区三区| 极品美女销魂一区二区三区| 九色综合国产一区二区三区| 国产美女在线观看一区| 成人在线综合网| 色婷婷国产精品| 欧美日韩国产综合视频在线观看 | 日韩一区二区三区电影在线观看 | 久久久蜜桃精品| 国产欧美中文在线| 亚洲欧美经典视频| 亚洲一区二区在线观看视频 | 欧美另类z0zxhd电影| 3d动漫精品啪啪一区二区竹菊| 91精品综合久久久久久| 久久久久久久av麻豆果冻| 国产精品青草综合久久久久99| 1000部国产精品成人观看| 亚洲一卡二卡三卡四卡| 另类小说图片综合网| 国产v日产∨综合v精品视频| 99久久亚洲一区二区三区青草| 欧美色窝79yyyycom| 日韩欧美精品在线| 国产精品美女久久福利网站| 亚洲成人你懂的| 国产精品一区二区黑丝| 色琪琪一区二区三区亚洲区| 欧美一区二区三区四区久久| 国产欧美视频一区二区三区| 亚洲国产日韩一级| 国产成人鲁色资源国产91色综 | 亚洲精品久久久久久国产精华液| 丝袜美腿亚洲综合| 国产69精品久久99不卡| 欧美三级三级三级爽爽爽| 久久女同互慰一区二区三区| 亚洲一区在线播放| 国产91丝袜在线18| 欧美久久一二区| 成人免费一区二区三区在线观看| 日韩不卡在线观看日韩不卡视频| 波多野结衣在线一区| 亚洲人成在线播放网站岛国| 亚洲午夜久久久久久久久电影院| 久久97超碰色| 在线观看国产精品网站| 久久久99精品免费观看| 天堂一区二区在线| 成人精品高清在线| 欧美一区二区三区啪啪| 亚洲欧美偷拍另类a∨色屁股| 久久99热这里只有精品| 色乱码一区二区三区88| 国产亚洲短视频| 人人狠狠综合久久亚洲| 91小视频在线观看| 久久综合久久鬼色| 日本中文一区二区三区| 在线观看日韩毛片| 综合激情成人伊人| 国产宾馆实践打屁股91| 欧美一区二区在线免费观看| 亚洲激情综合网| 92国产精品观看| 久久久久成人黄色影片| 久久成人麻豆午夜电影| 3d成人动漫网站| 亚洲一区二区免费视频| 91福利精品第一导航| 国产精品久久久久永久免费观看| 精品无码三级在线观看视频| 91精品国产入口| 午夜成人免费电影| 欧美人妇做爰xxxⅹ性高电影| 一区二区三区在线高清| 91一区二区三区在线播放| 中文字幕中文字幕在线一区 | 日韩精品国产精品| 欧美日韩国产综合视频在线观看 | 狠狠色狠狠色综合系列| 欧美一区二区久久| 日韩精彩视频在线观看| 欧美日本乱大交xxxxx| 亚洲6080在线| 欧美电影影音先锋| 蜜桃视频在线一区| 欧美精品一区二区三区高清aⅴ | 老汉av免费一区二区三区| 91精品国产综合久久香蕉麻豆| 亚洲成人免费视频| 91精品欧美综合在线观看最新| 午夜精品福利一区二区三区av| 91精品欧美久久久久久动漫| 首页综合国产亚洲丝袜| 日韩午夜在线观看| 狠狠色伊人亚洲综合成人| 久久九九国产精品| 成人h动漫精品一区二区| 自拍偷拍亚洲激情| 欧美日韩一区二区电影| 免费观看日韩av| 久久九九久久九九| 不卡av免费在线观看| 一区二区三区在线观看欧美| 欧美精品v国产精品v日韩精品| 美腿丝袜在线亚洲一区| 国产午夜亚洲精品羞羞网站| 成人爱爱电影网址| 午夜国产精品影院在线观看| 久久综合九色综合欧美98 | 在线观看日韩电影| 日韩专区欧美专区| 国产亚洲美州欧州综合国| 成人av在线网| 成人深夜在线观看| 一区av在线播放| 欧美mv日韩mv| 色香蕉成人二区免费| 久久99国产精品久久99| 亚洲视频中文字幕|