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

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

?? f360_cc1100.c

?? 使用C8051F360高速單片機加無線收發(fā)芯片CC1100實現(xiàn)的無線語音通信的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
} Audio_States;


//-----------------------------------------------------------------------------
// Global Variables
//-----------------------------------------------------------------------------


unsigned char code RegValue[] = {
//      CLOCK_A, (this register is configured separately inside CC1100_Init() )
//      0x25,

//    CLOCK_B,
      0x25,

//    VCO,
      0x44,

//    MODEM,
      0x50,

//    DEVIATION,
      0x5A,

//    AFC_CONTROL,
      0xCC,

//    FILTER,
      0x80,

//    VGA1,
      0x65,

//    VGA2,
      0x57,

//    VGA3,
      0x34,

//    VGA4,
      0x3E,

//    LOCK,
      0x20,

//    FRONTEND,
      0x76,

//    ANALOG,
      0x86,

//    BUFF_SWING,
      0x50,

//    BUFF_CURRENT,
      0x25,

//    PLL_BW,
      0xAE,

//    CALIBRATE,
      0x35,

//    PA_POWER,
      0xFF,

//    MATCH,
      0x22,

//    PHASE_COMP,
      0x00,

//    GAIN_COMP,
      0x00,

//    POWERDOWN,
      0x00,

//    TEST1,
      0x4D,

//    TEST2,
      0x10,

//    TEST3,
      0x06,

//    TEST4,
      0x00,

//    TEST5,
      0x40,

//    TEST6,
      0x00,

//    TEST7,
      0x00

};


// 1/2 Period Sine Wave Table
static char code Audio_SineTable[16] = {
   0x00,0x18,0x30,0x47,0x5a,0x6a,0x76,0x7d,
   0x7f,0x7d,0x76,0x6a,0x5a,0x47,0x30,0x18
};



// the mapping from DPCM quantization values to dpcm codes (array index)
short code Q_VALUES[16] = {0,
                     -high_high,
                     -high_mid,
                     -high_low,
                     -middle,
                     -low_high,
                     -low_mid,
                     -low_low,
                     0,
                     low_low,
                     low_mid,
                     low_high,
                     middle,
                     high_low,
                     high_mid,
                     high_high};

// CC1100 Interface Bits
sbit PALE = P0^2;
sbit DIO = P1^2;
sbit DCLK = P1^0;
sbit PCLK = P0^3;
sbit PDI = P0^6;
sbit PDO = P0^7;

// AN147 PCB Pins
sbit DEBUG= P1^4;
sbit LED1 = P1^5;
sbit LED2 = P1^6;
sbit SW2  = P1^7;


// RX/TX State Machine variables, flags
RXTX_StateMachineStates RXTX_StateMachine;
void CLEAR_FIFOS(void);                // resets all FIFOs to default values

bit RXTX_ResetVariables;               // indicates to RF state machines that
                                       // variables should be re-initialized

unsigned char RXTX_MasterSelect;       // determines whether RF state machine
                                       // behaves as slave or master across
                                       // the RF link

bit RXTX_RunInitSlave;                 // signals RF state machine to run
                                       // as slave

bit SPI_TimeOutEvent;                  // set when SPI_Timer reaches its
                                       // terminal value

unsigned int SPI_Timer;                // time base for RF state machine

unsigned char SPI_DataBytes;           // counts number of data bytes
                                       // transmitted or received during
                                       // current packet time

int DAC_Error;                         // used to measure how far buffers are
                                       // from defined ideal value

unsigned char RXTX_NoPreambleCount;    // counts number of consecutive packet
                                       // receptions that have failed due to
                                       // finding no preamble bytes

bit SPI_TimerEnable;                   // signals that SPI_Timer should
                                       // be incremented

TimeOut_EntryModes TimeOut_EntryMode;  // indicates whether packet
                                       // reception/transmission was successful
                                       // or unsuccessful

Audio_States Audio_LocalState;         // shows whether audio signal is
Audio_States Audio_RemoteState;        // "quiet" or "loud"

bit RXTX_Indicator;                    // shows whether RF state machine is in
                                       // transmit or receive mode

bit OutputByteReady;                   // toggles to indicate whether both
                                       // nibbles of OutputByte inside
                                       // DPCM_Compress contain valid compressed
                                       // data

// TransmitFIFO Variables
unsigned char TransmitFIFO_COUNT;
bit TransmitFIFO_EMPTY;
bit TransmitFIFO_OF;
bit TransmitFIFO_UF;
bit TransmitFIFO_FULL;
bit CC1100_StartUpCall;
unsigned char idata TransmitFIFO_FIRST;
unsigned char idata TransmitFIFO_LAST;
unsigned char xdata TransmitFIFO_FIFO[TransmitFIFO_FIFOSIZE];


// ReceiveFIFO Variables
unsigned char ReceiveFIFO_COUNT;
bit ReceiveFIFO_EMPTY;
bit ReceiveFIFO_OF;
bit ReceiveFIFO_UF;
bit ReceiveFIFO_FULL;
unsigned char idata ReceiveFIFO_FIRST;
unsigned char idata ReceiveFIFO_LAST;
unsigned char xdata ReceiveFIFO_FIFO[ReceiveFIFO_FIFOSIZE];



// ADCRXFIFO Variables
unsigned char ADCRXFIFO_COUNT;
bit ADCRXFIFO_EMPTY;
bit ADCRXFIFO_OF;
bit ADCRXFIFO_UF;
bit ADCRXFIFO_FULL;
unsigned char idata ADCRXFIFO_FIRST;
unsigned char idata ADCRXFIFO_LAST;
int xdata ADCRXFIFO_FIFO[ADCRXFIFO_FIFOSIZE];


// DACTXFIFO Variables
unsigned char DACTXFIFO_COUNT;
bit DACTXFIFO_EMPTY;
bit DACTXFIFO_OF;
bit DACTXFIFO_UF;
bit DACTXFIFO_FULL;
bit DACTXFIFO_DECOMPRESS_HALT;
unsigned char idata DACTXFIFO_FIRST;
unsigned char idata DACTXFIFO_LAST;
unsigned int xdata DACTXFIFO_FIFO[DACTXFIFO_FIFOSIZE];



//-----------------------------------------------------------------------------
// Macros
//-----------------------------------------------------------------------------

// configures Cross Bar to route SPI to port pins
#define RouteSPI() P1SKIP &= ~0x07;  P1MDOUT |= 0x10;  XBR1 = 0x41;  XBR0 = 0x02

// configures Cross Bar to route PCA0 module 0 to port pins
#define RoutePCA() P1SKIP &= ~0x07;  P1MDOUT &=~0x10;  P1SKIP |=  0x03;  XBR0 = 0x00;  XBR1 = 0x41

// used in RF state machine to determine SPI_Timer timing thresholds
#define SPI_ms(x) (x * SPI_DATARATE / 8) / 1000
#define SPI_us(x) ((x * SPI_DATARATE / 8) / 1000) / 1000

#define SPI_SlopTimeOut SPI_ms(1) + SPI_us(500)

#define SPI_CalibrationWaitTime SPI_ms(1)

#define SPI_PacketTime SPI_ms(17)

#define SPI_TX()  P1MDIN |=  0x02; P1MDOUT |=  0x02
#define SPI_RX()  P1MDIN &= ~0x02; P1MDOUT &= ~0x02

//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------
void main (void) {

   PCA0MD &= ~0x40;                    // disable watchdog timer

   PORT_Init();                        // initialize and enable the Crossbar
   SYSCLK_Init();                      // initialize oscillator
   Timer2_Init(SYSCLK/SAMPLE_RATE);    // initialize timer to overflow
                                       // at SAMPLE_RATE

   ADC0_Init();                        // ADC samples on Timer 2 interrupts
   SPI_Init();                         // init
   Timer3_Init(SYSCLK/DAC_UPDATERATE); // initialize timer 3 to overflow at
                                       // DACUPDATERATE
   PCA0_Init();                        // initialize PCA0 module 0 for
                                       // edge-triggered interrupts
   IDAC0_Init();                       // enable DAC outputs at P0.1

   Variables_Init();

   WaitMS_360(500);


   CC1100_StartUpCall = TRUE;          // forces CC1100_Init to turn on all
                                       // RF transceiver components

   while(!CC1100_Init()){}             // initalize the RF transceiver

   CC1100_StartUpCall = FALSE;

   WaitMS_360(200);

   RXTX_InitSlave();                   // configure RF state machine to slave
                                       // mode, where it will search for a
                                       // Communication Channel


   AD0EN = 1;                          // enables ADC0
   EA = 1;                             // enables all interrupts

   while (1)
   {

      FIFO_ManagementRoutine();        // compresses and decompresses
                                       // audio samples

      // if audile signal present is present at the audio input and the
      // system is not already communicating across the RF line,
      // then initiate a Communication Channel
      if((Audio_LocalState == Audio_Loud) &&
         (RXTX_MasterSelect == RXTX_Searching) &&
         (RXTX_RunInitSlave != TRUE))
      {
         EA = 0;                       // disable interrupts
         RXTX_InitMaster();            // configure to be master endpoint
         EA = 1;                       // re-enable interrupts
      }


      if(Audio_LocalState == Audio_Loud) LED1 = 0; else LED1 = 1;


      // only run the following conditional if SPIBSY == 0, that is
      // if the Audio_ShutdownChannel Audio_Level command has been transmitted
      // so that the receiving slave will no to end transmission
      if((RXTX_RunInitSlave == TRUE) && !(SPI0CFG & 0x80))
      {
         EA = 0;                       // disable interrupts
         RXTX_InitSlave();             // configure to be slave endpoint
                                       // and search for a transmitting master
         EA = 1;                       // re-enable interrupts
      }

  } // end while(1)

} // end void main()


//-----------------------------------------------------------------------------
// Initialization Functions
//-----------------------------------------------------------------------------
//

//-----------------------------------------------------------------------------
// SYSCLK_Init
//-----------------------------------------------------------------------------
//
// This routine initializes the system clock to use the internal 24.5MHz
// oscillator as its clock source.  Also enables missing clock detector
// reset and enables the VDD monitor as a reset source.
//
void SYSCLK_Init (void)
{
   OSCICN |= 0x03;                     // set clock to 24.5 MHz
   RSTSRC  = 0x06;                     // enable missing clock detector
}

//-----------------------------------------------------------------------------
// ADC0_Init
//-----------------------------------------------------------------------------
//
// Configure ADC0 to use Timer2 overflows as conversion source, and to
// generate an interrupt on conversion complete.
// Enables ADC end of conversion interrupt. Leaves ADC disabled.
//
void ADC0_Init(void)
{
   REF0CN = 0x03;                      // set VREF pin as voltage reference,
                                       // enable internal bias generator and
                                       // internal reference buffer

   ADC0CN = 0x02;                      // overflow on Timer 2 starts
                                       // conversion
                                       // ADC0 disabled and in normal
                                       // tracking mode
   AMX0P  = 0x0B;                      // select P1.3 as positive conv. source
   AMX0N  = 0x11;                      // set ADC to single-ended mode
   ADC0CF = (SYSCLK/3000000) << 3;     // ADC Conversion clock = 3 MHz
   ADC0CF&= ~0x04;                     // ADC readings are right-justified
   EIE1  |= 0x08;                      // enable ADC0 EOC interrupt
}

//-----------------------------------------------------------------------------
// PORT_Init
//-----------------------------------------------------------------------------
//
// P0.0 - VREF
// P0.1 - IDAC0 Output
// P0.2 - PSEL
// P0.3 - PCLK
// P0.4 -
// P0.5 -
// P0.6 - PDI
// P0.7 - PDO
// P1.0 - SCK (DCLK)
// P1.1 - MISO (DIO)
// P1.2 - MOSI (DIO)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品日韩一| 亚洲国产成人自拍| 日本伊人精品一区二区三区观看方式| 日韩欧美国产综合一区 | 午夜精品影院在线观看| 一本一本大道香蕉久在线精品 | 国产成人鲁色资源国产91色综| 成人免费视频视频| 国产精品国产三级国产有无不卡| 香蕉成人伊视频在线观看| 欧美一区二区三区在线视频 | 久久一二三国产| 成人av免费在线观看| 国产精品午夜在线| 欧美日韩一二三区| 久久99久国产精品黄毛片色诱| 在线观看一区不卡| 国产精品小仙女| 亚洲乱码中文字幕| 精品国产伦一区二区三区免费| 亚洲综合在线视频| 日韩午夜精品电影| 成人美女视频在线观看| 亚洲综合色视频| 91精品国产色综合久久ai换脸 | 欧美曰成人黄网| 麻豆freexxxx性91精品| 国产精品全国免费观看高清 | 欧美日韩中文字幕一区| 日本视频中文字幕一区二区三区| 在线精品国精品国产尤物884a| 国产精品入口麻豆原神| 欧美老人xxxx18| 韩日精品视频一区| 一区二区三区不卡视频| 2024国产精品视频| 在线亚洲高清视频| 成人app在线观看| 毛片av一区二区| 亚洲va在线va天堂| 国产精品久久看| 亚洲精品在线免费播放| 国产午夜精品美女毛片视频| 欧美日韩精品一区二区三区| 成人国产精品视频| 国产一区 二区 三区一级| 亚洲成人免费影院| 亚洲女厕所小便bbb| 国产亚洲综合色| 日韩你懂的在线观看| 欧美日韩国产欧美日美国产精品| 亚洲成人av中文| 日韩久久一区二区| 久久蜜桃av一区精品变态类天堂| 极品尤物av久久免费看| 亚洲国产一区在线观看| 亚洲视频一二三| 国产拍欧美日韩视频二区 | 粉嫩aⅴ一区二区三区四区| 奇米色一区二区三区四区| 洋洋av久久久久久久一区| 国产精品久久午夜夜伦鲁鲁| 国产日韩精品一区二区三区在线| 国产精品一级黄| 激情国产一区二区| 蜜臀精品久久久久久蜜臀| 秋霞午夜av一区二区三区| 天天色天天操综合| 亚洲五码中文字幕| 一区二区在线观看免费视频播放| 欧美日产在线观看| 欧美日韩免费在线视频| 欧美私模裸体表演在线观看| 在线视频国内自拍亚洲视频| 欧美三级电影在线看| 欧美视频在线观看一区二区| 欧美午夜寂寞影院| 欧美美女喷水视频| 欧美一级理论片| 日韩一卡二卡三卡| 精品国产欧美一区二区| wwww国产精品欧美| 欧美国产亚洲另类动漫| 国产精品第13页| 一区二区理论电影在线观看| 亚洲电影一级片| 毛片av一区二区| 国产曰批免费观看久久久| 国产精品1区2区| 99久久综合色| 欧美写真视频网站| 欧美一级一区二区| 国产三级久久久| 最好看的中文字幕久久| 亚洲综合图片区| 美女精品一区二区| 成人一区二区三区视频在线观看| 日产国产欧美视频一区精品| 青青草国产精品97视觉盛宴 | 亚洲国产精品一区二区久久| 亚洲成人在线观看视频| 精品一区二区免费| 国产福利电影一区二区三区| 91欧美一区二区| 欧美一区二区日韩| 国产精品少妇自拍| 亚洲成人激情自拍| 国产+成+人+亚洲欧洲自线| 色av成人天堂桃色av| 日韩免费福利电影在线观看| 国产精品国产自产拍在线| 亚洲v日本v欧美v久久精品| 国产精品一级片| 欧美日韩专区在线| 欧美国产精品劲爆| 天堂成人国产精品一区| 成人小视频免费在线观看| 欧美剧在线免费观看网站| 国产亚洲成aⅴ人片在线观看| 精品久久99ma| 中文字幕制服丝袜一区二区三区| 国产色综合一区| 视频一区视频二区中文字幕| 国产一区免费电影| 欧美日韩亚洲综合在线| 久久久久久久久久看片| 亚洲一区二区精品3399| 成人a免费在线看| 91精品国产欧美一区二区18| 亚洲欧美成人一区二区三区| 国产一区久久久| 91精品黄色片免费大全| 亚洲免费视频中文字幕| 国产高清久久久久| 日韩精品中文字幕一区| 亚洲第一在线综合网站| 99精品视频一区二区三区| 精品久久人人做人人爰| 日韩中文字幕1| 在线一区二区观看| 中文字幕在线一区免费| 国产成人av影院| 久久久美女艺术照精彩视频福利播放| 久久精品人人做人人综合 | 欧美亚洲另类激情小说| 国产精品三级电影| 国产毛片精品一区| 欧美一二三四区在线| 午夜精品福利在线| 欧美私模裸体表演在线观看| 一级日本不卡的影视| hitomi一区二区三区精品| 国产视频一区在线观看| 国内成人精品2018免费看| 日韩欧美一卡二卡| 久久电影网站中文字幕| 日韩午夜精品视频| 裸体在线国模精品偷拍| 日韩一级高清毛片| 日韩av在线免费观看不卡| 欧美日韩精品一区二区三区蜜桃| ww亚洲ww在线观看国产| 激情小说亚洲一区| 精品国产乱码久久久久久图片| 国产精品护士白丝一区av| 成人精品在线视频观看| 国产日韩欧美一区二区三区乱码| 亚洲手机成人高清视频| 色哟哟精品一区| 中文字幕中文乱码欧美一区二区| 日精品一区二区三区| 69成人精品免费视频| 日本成人在线电影网| 7777女厕盗摄久久久| 久久精品国产亚洲高清剧情介绍| 99精品久久只有精品| 亚洲靠逼com| 欧美在线你懂的| 五月综合激情婷婷六月色窝| 日韩一区二区三| 精品系列免费在线观看| 欧美经典一区二区| 99在线热播精品免费| 亚洲日本丝袜连裤袜办公室| 欧美日韩在线播放三区| 免费一区二区视频| 国产日韩欧美高清| 欧美在线影院一区二区| 蜜臀久久99精品久久久画质超高清| 91色|porny| 日日夜夜精品视频免费 | 91成人免费在线视频| 天天综合色天天综合色h| 日韩限制级电影在线观看| 国产成人精品免费看| 亚洲欧洲av在线| 欧美肥大bbwbbw高潮| 成人黄色免费短视频| 亚洲午夜激情网页| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av |