⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc1000main.h

📁 CC1000为RF芯片
💻 H
字号:
#define DDA0                0x88
#define DDA1                0xF9
#define DDA2                0x4C
#define DDA3                0x68
#define DDA4                0x39
#define DDA5                0x2A
#define DDA6                0x0A
#define DDA7                0xF8
#define DDA8                0x08
#define DDA9                0x28

#define YES  1
#define ON   1
#define HIGH 1
#define NO   0
#define OFF  0
#define LOW  0

#define setbit(var,bitno) ((var) |=  (1<<(bitno)))
#define clrbit(var,bitno) ((var) &= ~(1<<(bitno)))
#define notbit(var,bitno) ((var) ^=  (1<<(bitno)))
#define tstbit(var,bitno) (((var)&(1<<bitno)))

typedef unsigned char INT8U;
typedef unsigned int  INT16U;
typedef struct
{
    INT8U b0:1; 
    INT8U b1:1; 
    INT8U b2:1; 
    INT8U b3:1; 
    INT8U b4:1;
    INT8U b5:1;
    INT8U b6:1;
    INT8U b7:1;
} BITS;

INT8U  Flag1;
INT8U  Flag2;
INT8U  Flag3;
INT8U  Temp1;
INT8U  Temp2;
INT8U  Temp3;
INT8U  Temp4;
INT8U  Temp5;

INT8U  BitCtr;      
INT8U  Txdata;      
INT8U  Txbuf1;
INT8U  Txbuf2;
INT8U  Txbuf3;
INT8U  Txbuf4;
INT8U  Txbuf5;
INT8U  Txbuf6;
INT8U  Txbuf7;
INT8U  Txbuf8;

INT8U  PreCtr;
INT8U  Rxdata;
INT8U  Rxbuf1;
INT8U  Rxbuf2;
INT8U  Rxbuf3;
INT8U  Rxbuf4;
INT8U  Rxbuf5;
INT8U  Rxbuf6;
INT8U  Rxbuf7;
INT8U  Rxbuf8;

INT16U Tmr1b;
INT16U Tmr1bb;

INT8U  Kbuf;
INT8U  Kctr;
INT8U  FlashCtr;
INT8U  Optbuf;
INT8U  Optctr;

INT8U  TransCtr;

#define b_Khold     (((BITS*)&Flag1)->b0)
#define b_Kvalid    (((BITS*)&Flag1)->b1)
#define b_UnlockAvg (((BITS*)&Flag1)->b2)
#define b_LockAvg   (((BITS*)&Flag1)->b3)
#define b_Mcode     (((BITS*)&Flag1)->b4)
#define b_NRZ       (((BITS*)&Flag1)->b5)
#define b_UART      (((BITS*)&Flag1)->b6)
#define b_Tstbase   (((BITS*)&Flag1)->b7)

#define b_IsTx      (((BITS*)&Flag2)->b0) 
#define b_TxGo      (((BITS*)&Flag2)->b1) 
#define b_RxGo      (((BITS*)&Flag2)->b2) 
#define b_PreFound  (((BITS*)&Flag2)->b3) 
#define b_IdOk      (((BITS*)&Flag2)->b4) 
#define b_Checksum  (((BITS*)&Flag2)->b5) 
#define b_Answer    (((BITS*)&Flag2)->b6)
#define b_Txtrue    (((BITS*)&Flag2)->b7)

#define b_Headov    (((BITS*)&Flag3)->b0)


#define UI1         0x33
#define UI2         0xCC


const INT8U Digit09[] = {DDA0,DDA1,DDA2,DDA3,DDA4,DDA5,DDA6,DDA7,DDA8,DDA9};

#define o_led2  RA5 
#define o_led1  RA4 
#define o_pale  RA3
#define o_pdata RA2
#define o_pclk  RA1
#define o_buz   RA0

#define io_data RB1
#define i_clock RB0

void SysInit(void);
void Readkey(void);
void Keyproc(void);
void Transmit(void);
void Dly5(INT8U);   
void Dly1000(INT8U); 

#define CC1000_MAIN            0x00
#define CC1000_FREQ_2A         0x01
#define CC1000_FREQ_1A         0x02
#define CC1000_FREQ_0A         0x03
#define CC1000_FREQ_2B         0x04
#define CC1000_FREQ_1B         0x05
#define CC1000_FREQ_0B         0x06
#define CC1000_FSEP1           0x07
#define CC1000_FSEP0           0x08
#define CC1000_CURRENT         0x09
#define CC1000_FRONT_END       0x0A
#define CC1000_PA_POW          0x0B
#define CC1000_PLL             0x0C
#define CC1000_LOCK            0x0D
#define CC1000_CAL             0x0E
#define CC1000_MODEM2          0x0F
#define CC1000_MODEM1          0x10
#define CC1000_MODEM0          0x11
#define CC1000_MATCH           0x12
#define CC1000_FSCTRL          0x13
#define CC1000_FSHAPE7         0x14
#define CC1000_FSHAPE6         0x15
#define CC1000_FSHAPE5         0x16
#define CC1000_FSHAPE4         0x17
#define CC1000_FSHAPE3         0x18
#define CC1000_FSHAPE2         0x19
#define CC1000_FSHAPE1         0x1A
#define CC1000_FSDELAY         0x1B
#define CC1000_PRESCALER       0x1C
#define CC1000_TEST6           0x40
#define CC1000_TEST5           0x41
#define CC1000_TEST4           0x42
#define CC1000_TEST3           0x43
#define CC1000_TEST2           0x44
#define CC1000_TEST1           0x45
#define CC1000_TEST0           0x46

#define  LOCK_NOK         0x00
#define  LOCK_OK          0x01
#define  LOCK_RECAL_OK    0x02


#define CAL_TIMEOUT   106 
#define LOCK_TIMEOUT  106 

const INT8U DefaultConfig[35] = 
{
    0x58,0x20,0x00, 
    0x42,0x14,0x9C, 
    0x02,0x80,      
    0x44,       
    0b00010000, 
    0xFF,       
    0b01100000, 
    0b00010000, 
    0x26,       
    0b10001101, 
    0b01101001, 
    0b00101011, 
    0xF0,       
    0x01,
    0x1C,0x16,0x10,0x0A,0x06,0x03,0x01,0x1F,
    0x00, 
    0x10,0x08,0x25,0x04,0x00,0x00,0x00
};

#define PA_VALUE 0xFF
#define TXPLL   0x48 
#define RXPLL   0x60
#define	RXDL    0x44
#define	TXDL    0x81

void  WriteToCC1000Register(INT8U addr, INT8U data);
void  WriteToCC1000RegisterWord(INT16U addranddata);
INT8U ReadFromCC1000Register(INT8U addr);
void  ResetCC1000(void);
INT8U CalibrateCC1000(void);
INT8U SetupCC1000RX(INT8U RXCurrent);
INT8U SetupCC1000TX(INT8U TXCurrent);
void  SetupCC1000PD(void);
void  WakeUpCC1000ToRX(INT8U RXCurrent);
void  WakeUpCC1000ToTX(INT8U TXCurrent);
void  AverageManualLockCC1000(void);
void  AverageFreeRunCC1000(void);
void  AverageAutoLockCC1000(void);
//void  ReadCurrentCalibration(char *val1, char *val2);
//void  OverrideCurrentCalibration(char val1, char val2);
//void  StopOverridingCalibration(void);
void  ResetFreqSynth(void);
void  CC1000Init(void);
void  SetupCC1000All(void);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -