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

📄 configure.h

📁 CodevisionAVR 开发环境。 用AVR控制TI/Chipcon非常常用的CC1000射频收发芯片。
💻 H
字号:

/****************************************************************************                                                                         
 * Revision history:                                                         
 *                                                                           
 * 
 * Created by
 *
 *
 * Description:
 *                                                                           
 *****************************************************************************/    
 

/* Pin usage definitions */
#define PDATA       2   // PORTC, pin 2  25  IN/out
#define PCLK        3   // PORTC, pin 3  26  out
#define PALE        1   // PORTC, pin 1  24  out        //也就是所谓的ID_EN引脚 谁说PALE就是ID_EN.Fuck!
#define ID_EN       5   // PORTB, pin 5  17  IN         //就是ISP用到的SPI的SCK引脚.
#define DIO         5   // PORTC, pin 5  28  in/out
#define DCLK        4   // PORTC, pin 4  27  in         //PCINT12 

#define CAL_TIMEOUT   0x1FFE
#define LOCK_TIMEOUT  0x1FFE
//#define PA_VALUE 0xF0 
#define PA_VALUE 0x0F  


//记得使用MACRO的时候, 将DIO配置为合适的IN or OUT状态(DDRC)
#define SET_DIO()  (PORTC |= (1<<DIO))      //DIO 置1
#define CLEAR_DIO()  (PORTC &= ~(1<<DIO))   //DIO 置0
#define Read_DIO() ((PINC & (1<<DIO))>>DIO) //Read DIO 
#define SET_DIO_OUTPUT (DDRC |= (1<<DIO))   //set DIO as ourput pin
#define SET_DIO_INPUT  (DDRC &= ~(1<<DIO))  //set DIO as input pin   

// ID_EN就是那个PEN.
#define SET_IDEN()  (PORTB |= (1<<ID_EN))    //ID_EN 置1
#define CLEAR_IDEN()  (PORTB &= ~(1<<ID_EN)) //ID_EN 置0
#define SET_IDEN_OUTPUT (DDRB |= (1<<ID_EN ))   //set ID_EN as ourput pin
#define SET_IDEN_INPUT  (DDRB &= ~(1<<ID_EN ))  //set ID_EN as input pin
#define Enable_IDEN_PullUp (PORTB|=(1<<ID_EN))  //ID_EN 引脚的上拉电阻使能,
#define Read_IDEN() ((PINB & (1<<ID_EN))>>ID_EN)        //Read ID_EN 
 

 /***************************************************************************** 
 All for Power saving  Saving all that can be saved!!!! Save the World!!!!
  *****************************************************************************/ 
   
//SleepMode selection and Enablation
#define ENABLE_SLEEP  (SMCR |= 1)  //mega48省电模式允许
#define SET_SLEEP_MODE SMCR |= (1<<1); \
                        SMCR |= (1<<2); \
                        SMCR &= ~(1<<3) //设置SleepMODE
#define WakeUp_SLEEP (SMCR &= ~1)  // m4ga48省电模式禁止


//Change Mega48 Frequency in order to delay the needed time 
#define HignFreq_8MHz()   CLKPR=0x80; \
                          CLKPR=0x00   // 8MHz Frequency divider factor==1
#define LowFreq_62dot5KHz()   CLKPR=0x80; \
                               CLKPR=0x06   // 8MHz/256  Frequency divider factor==256

//功耗抑制寄存器- PRR 设置 关闭任何不用的模块.
#define PRR_Close_all() PRR|=0xEF;

#define PRR_Close_TC1() (PRR |= (1<<PRTMR1))
#define PRR_Open_TC1() (PRR &= ~(1<<PRTMR1))  

#define PRR_Close_TC2() (PRR |= (1<<PRTMR2))
#define PRR_Open_TC2() (PRR &= ~(1<<PRTMR2)) 

#define PRR_Close_USART0() (PRR |= (1<<PRUSART0)) //在Transmitter 里面仅仅调试用
#define PRR_Open_USART0() (PRR &= ~(1<<PRUSART0)) //在Transmitter 里面仅仅调试用
#define PRR_Close_SPI() (PRR |= (1<<PRSPI))
#define PRR_Open_SPI() (PRR &= ~(1<<PRSPI))


//开启T/C2定时
#define Start_TC2() \
        ASSR=0x00; \ //Asynchronous Status Register  选择CLKi/o
        TCCR2A=0x02; \  // CTC 模式
        TCCR2B=0x07; \ // clkT2S/1024 (From prescaler) 
        TCNT2=0x00; \ //计数器初始值
        OCR2A=0x3f; \ //Output Compare Register
        OCR2B=0x00; \ //not used.   
        TIMSK2=0x02

 
#define Stop_TC2()  \
        TCCR2A=0x00;     \
        TCCR2B=0x00;     \
        TCNT2=0x00;      \
        OCR2A=0x00;      \
        TIMSK2=0x00        
        

// Timer1 manipulation 125kHz
#define Start_TC1() \ 
TCCR1B=0x0B;   \   
OCR1AH=0x10;   \
OCR1AL=0x00;   \
TIMSK1=0x02; 

#define Start_TC1_L() \ 
TCCR1B=0x0C;   \   
OCR1AH=0xEf;   \
OCR1AL=0xff;   \
TIMSK1=0x02;

#define Stop_TC1() \ 
TCCR1B=0x00;   \
OCR1AH=0x00;   \
OCR1AL=0x00;   \
TIMSK1=0x00;

#define Reset_TC1()   TCNT1H=0x00;  \
                      TCNT1L=0x00;          
        
//ASSR=0x00;       \
//OCR2B=0x00;      \      
//void SetupCC1000All(void);

⌨️ 快捷键说明

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