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

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

?? cc1020pic.c

?? CC1020的源代碼,詳細介紹CC1020的配置和開發,
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************/
/* Microcontroller (PIC) software library for CC1020 application            */
/*                                                                          */
/* File:      cc1020pic.c                                                   */
/*                                                                          */
/* Microcontroller:                                                         */
/*          Microchip PIC16F876                                             */
/*                                                                          */
/* Written for the IAR PIC16 compiler                                       */
/*                                                                          */
/* Author:  Arne Rogndalen, Design Engineer, Chipcon                        */
/*          Torgeir Sundet, FAE Software, Chipcon                           */
/*                                                                          */
/* Contact: Chipcon AS +47 22 95 85 44                                      */
/*          support@chipcon.com                                             */
/*                                                                          */
/****************************************************************************/

/****************************************************************************/
/* This library contains functions for configuring the CC1020. These        */
/* routines use bit-banging to program the CC1020, faster configuration is  */
/* possible by using a synchronous serial port such as a SPI interface.     */
/* The header file "modemhw.h" contains definitions for the various I/O     */
/* pins, the user should make a similar file to name the pins used to       */
/* communicate with the CC1020. Routines to read and write the calibration  */
/* values in the CC1020 are provided, they are not used in this reference   */
/* application, but are useful in other applications, most notably          */
/* frequency-agile and frequency hopping applications. See application      */
/* note AN009 for more information.                                         */
/* The routines in this file will have to be adapted depending on the MCU   */
/* and compiler used. The method used for shifting data in and out may have */
/* to be changed if the bit ordering for bitfields is different from the    */
/* IAR PIC compiler.                                                        */
/*                                                                          */
/* Configuration routines are included in two versions: one using general   */
/* I/O ports ("bit-banging"), and one using the built-in SPI interface of   */
/* the PIC16F876. If possible, the SPI version should be used, as this is   */
/* much faster. The SPI versions are used if the symbol "SPI" is defined,   */
/* otherwise the general I/O-based version is used.                         */
/****************************************************************************/

/*                                                                           *
 * Revision history:                                                         *
 *                                                                           *
 * $Log: cc1020pic.c,v $
 * Revision 1.3  2003/12/16 14:58:58  tos
 * Removed 5 msec delay/wait before LOCK monitor.
 *
 * Revision 1.2  2003/09/17 15:58:02  tos
 * Mod's:
 * - tuned AFC_CONTROL for optimum preamble performance.
 * - turn on TX before PA is increased.
 *
 * Revision 1.1  2003/07/31 13:17:16  tos
 * Initial version in CVS.
 *
 *
 *                                                                           *
 ****************************************************************************/


#include "io16f876.h"
#include "CC1020.h"
#include "modemhw.h"


/****************************************************************************/
/*  This routine sends new configuration data to the CC1020                 */
/****************************************************************************/

void ConfigureCC1020(char Count, short Configuration[])
{
  short val;
  char i;
  
  for (i=0;i<Count;i++) {
    val=Configuration[i];
    WriteToCC1020RegisterWord(val);
  }
   
}

/****************************************************************************/
/* SPI versions of configuration routines. The SPI interface must be        */
/* initialised correctly before use                                         */
/****************************************************************************/

#ifdef SPI


/****************************************************************************/
/*  This routine sets up the CC1020 for SPI transfer                        */
/****************************************************************************/

void SetupCC1020ForSPI(void)
{
  SSPSTAT=0x40; 
  SSPCON=0x20;
}

/****************************************************************************/
/*  This routine writes to a single CC1020 register                         */
/****************************************************************************/

void WriteToCC1020Register(char addr, char data)
{
  char dummy;

  PSEL=0;
   
  dummy=SSPBUF;
  SSPBUF=(addr<<1)|0x01; // Write address to CC1020, write bit is always 1
 
  // Wait until data is written 
  while (BF==0);    

  dummy=SSPBUF;  
  SSPBUF=data;
  while (BF==0);

  PSEL=1;
}

/****************************************************************************/
/*  This routine writes to a single CC1020 register, with data and address  */
/*  given in the same variable                                              */
/****************************************************************************/

void WriteToCC1020RegisterWord(short addranddata)
{
  char dummy;
  
  union {
    unsigned short data;
    struct {
      char LowByte;
      char HighByte;
    };
  };

  data=addranddata;
  PSEL=0;
   
  dummy=SSPBUF;
  SSPBUF=LowByte|0x01; // Write address to CC1020, write bit is always 1
 
  // Wait until data is written 
  while (BF==0);    
  
  dummy=SSPBUF;  
  SSPBUF=HighByte;
  while (BF==0);

  PSEL=1;
}

/****************************************************************************/
/*  This routine reads from a single CC1020 register                        */
/****************************************************************************/

char ReadFromCC1020Register(char addr)
{
  char Value;

  PSEL=0;
  Value=SSPBUF;
  SSPBUF=(addr<<1)&0xFE; // Write address to CC1020, write bit is always 0
  
  // Wait until data is written 
  while (BF==0);
  SSPOV=0;
  
  // Switch direction 
  PDI=1;
  TRISC|=0x20; // Set up PDATAOUT as an input
  
  SSPBUF=0xFF; // Dummy write 
  
  while (BF==0);
  Value=SSPBUF;
  
  TRISC&=~0x20; // Set PDATAOUT as an output 

  PSEL=1;
  return Value;
}

#else  

/****************************************************************************/
/* General I/O pin "bit-bashing" versions of configuration routines.        */
/****************************************************************************/

/****************************************************************************/
/*  This routine writes to a single CC1020 register                         */
/****************************************************************************/

void WriteToCC1020Register(char addr, char data)
{
  short val;
  
  val=(short) (addr&0x7F)<<9 | (short) data &0x00FF;
  WriteToCC1020RegisterWord(val);
}

/****************************************************************************/
/*  This routine writes to a single CC1020 register, with address and data  */
/*  given in the same variable                                              */
/****************************************************************************/

void WriteToCC1020RegisterWord(short addranddata)
{
  char  BitCounter;
  char Low;
  char High;
  union {
    unsigned short data;
    struct
    {
      char LowByte;
      char HighByte;
    };
  };
  
  PSEL=1;

  data=addranddata;

  PSEL=0;
    
  Low=LowByte;

  // Send address bits 
  for (BitCounter=0;BitCounter<7;BitCounter++)
  {
    PCLK=0;
    PDI=((Low&0x80)>>7);
    Low=Low<<1;
    PCLK=1;
  }
  // Send read/write bit 
  // Ignore bit in data, always use 1 
  
  PCLK=0;
  PDI=1;
  PCLK=1;
  PCLK=0;

  High=HighByte;

  // Send data bits 
  for (BitCounter=0;BitCounter<8;BitCounter++)
  {
    PCLK=0;
    PDI=((High&0x80)>>7);
    High=High<<1;
    PCLK=1;
  }
  PCLK=0;

  PSEL=1;
}

/****************************************************************************/
/*  This routine reads from a single CC1020 register                        */
/****************************************************************************/

char ReadFromCC1020Register(char addr)
{
  char BitCounter;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久久久久久久| 日欧美一区二区| 久久久久久久久久美女| 久久综合九色综合97婷婷| 欧美一区二区黄| 日韩精品一区二区三区视频| 制服丝袜日韩国产| 日韩欧美精品在线视频| 精品国精品国产尤物美女| 久久久国产综合精品女国产盗摄| 国产日韩欧美高清在线| 中文乱码免费一区二区| 中文字幕在线不卡| 亚洲在线中文字幕| 免费成人av在线| 成人精品小蝌蚪| 色94色欧美sute亚洲13| 欧美伦理电影网| 2020国产精品自拍| 日韩理论片网站| 青青草视频一区| 成人av在线播放网址| 在线观看中文字幕不卡| 日韩精品一区二区三区老鸭窝| 精品动漫一区二区三区在线观看| 中文字幕免费观看一区| 亚洲精品第一国产综合野| 欧美aa在线视频| bt欧美亚洲午夜电影天堂| 欧美一区三区四区| 国产精品女同互慰在线看| 亚洲最新视频在线观看| 国产一区二区美女诱惑| 欧美日韩一区精品| 国产调教视频一区| 日韩专区中文字幕一区二区| 成人午夜在线免费| 717成人午夜免费福利电影| 国产精品蜜臀在线观看| 日韩电影一二三区| 成av人片一区二区| 日韩精品一区二区在线观看| 亚洲精品免费播放| 国产91精品露脸国语对白| 欧美日韩高清一区二区不卡| 中文字幕乱码亚洲精品一区| 琪琪久久久久日韩精品| 91黄色激情网站| 国产精品丝袜一区| 韩国理伦片一区二区三区在线播放| 91亚洲男人天堂| 国产日韩高清在线| 麻豆传媒一区二区三区| 欧美吻胸吃奶大尺度电影| 中文字幕av一区二区三区免费看 | 亚洲国产va精品久久久不卡综合| 国产一区二区在线视频| 欧美日韩精品欧美日韩精品一| 国产精品久久久久久久第一福利| 国内外成人在线| 欧美一级日韩不卡播放免费| 亚洲综合久久av| 97se亚洲国产综合自在线| 久久婷婷一区二区三区| 美国毛片一区二区| 3751色影院一区二区三区| 亚洲成人动漫在线免费观看| 在线免费观看日本欧美| 一区二区三区中文在线观看| 99热这里都是精品| 国产精品美日韩| 成人黄色av电影| **欧美大码日韩| 99亚偷拍自图区亚洲| 中文天堂在线一区| a亚洲天堂av| 伊人色综合久久天天| 色综合久久中文综合久久牛| 亚洲特级片在线| 91在线观看视频| 亚洲激情av在线| 欧美丰满嫩嫩电影| 蜜桃视频在线观看一区| 欧美精品一区二区三区高清aⅴ | 欧美嫩在线观看| 日韩影院在线观看| 精品国一区二区三区| 丁香激情综合五月| 成人欧美一区二区三区| 91官网在线免费观看| 丝袜美腿亚洲一区| 欧美精品一区视频| 91在线免费视频观看| 一个色综合网站| 日韩一区国产二区欧美三区| 国产精品羞羞答答xxdd| 日韩伦理av电影| 日韩一区二区中文字幕| 国产成人精品免费在线| 亚洲女人小视频在线观看| 欧美日精品一区视频| 国产精品综合久久| 亚洲精品大片www| 精品欧美一区二区在线观看| 不卡一区二区中文字幕| 亚洲3atv精品一区二区三区| 欧美成人免费网站| 色婷婷综合久久久中文字幕| 另类小说色综合网站| 中文字幕久久午夜不卡| 欧美日韩成人综合| 国产不卡在线视频| 亚洲国产精品久久久男人的天堂 | 色综合欧美在线视频区| 男人的j进女人的j一区| 亚洲视频1区2区| 久久婷婷色综合| 欧美日韩精品一区二区三区| 国产精品 欧美精品| 午夜精品一区二区三区三上悠亚| 欧美经典一区二区| 欧美精品v国产精品v日韩精品| 国产成人免费视频一区| 亚洲mv在线观看| 亚洲天堂成人在线观看| 久久久午夜精品| 欧美不卡在线视频| 欧美日韩色一区| 91国产精品成人| av一区二区三区在线| 国产久卡久卡久卡久卡视频精品| 视频在线在亚洲| 一区二区三区不卡视频在线观看| 国产欧美视频在线观看| 日韩欧美的一区二区| 欧美日韩精品福利| 欧美婷婷六月丁香综合色| 99久久综合狠狠综合久久| 国产成人精品综合在线观看| 狠狠色综合日日| 久久国产精品第一页| 蜜桃精品在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 一级精品视频在线观看宜春院| 国产精品久久毛片a| 久久久久久久久久电影| 精品福利一区二区三区| 精品对白一区国产伦| 精品国产91久久久久久久妲己| 日韩一区二区影院| 日韩一级二级三级| 日韩精品一区二区在线观看| 精品日韩欧美在线| 欧美成人激情免费网| 久久综合色天天久久综合图片| 欧美mv和日韩mv国产网站| 日韩欧美一卡二卡| www国产精品av| 久久网这里都是精品| 亚洲国产岛国毛片在线| 亚洲欧美色图小说| 亚洲一级电影视频| 日韩中文欧美在线| 激情另类小说区图片区视频区| 国产精品1区二区.| www.成人网.com| 欧美日韩视频在线一区二区 | 亚洲国产精品黑人久久久| 国产欧美一区二区三区鸳鸯浴| 中文字幕va一区二区三区| 亚洲免费观看高清完整版在线 | 精品国产一区二区国模嫣然| 精品电影一区二区| 国产精品日日摸夜夜摸av| 亚洲综合在线免费观看| 日韩国产成人精品| 国产精品2024| 欧美日韩黄色一区二区| 欧美精品一区二区三区很污很色的 | 色悠久久久久综合欧美99| 欧美色老头old∨ideo| 日韩欧美在线影院| 国产精品伦理在线| 日韩电影免费一区| 成人动漫一区二区| 91精品国产91久久综合桃花| 中文字幕欧美日韩一区| 香蕉成人伊视频在线观看| 国产乱人伦精品一区二区在线观看| 91麻豆国产福利在线观看| 51午夜精品国产| 亚洲女与黑人做爰| 国产福利一区二区三区视频| 欧美午夜不卡视频| 日本一区二区视频在线| 麻豆精品视频在线观看视频| 91丝袜美腿高跟国产极品老师 | 亚洲欧洲av一区二区三区久久| 性欧美大战久久久久久久久| av在线播放一区二区三区|