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

📄 extcc2420.h

📁 射频芯片cc2420的使用例程
💻 H
字号:
#ifndef EXTCC2420_H
#define EXTCC2420_H

#include "global.h"

/***********************************************************
		端口设置宏
***********************************************************/
// 端口初始化
// 禁止所有端口的上拉
//        PORTB = BV(MOSI) | BV(SCK) | BV(CSN); 
#define PORT_INIT() \
    do { \
    	SFIOR |= BV(PUD);\
        DDRB  = BV(MOSI) | BV(SCK) | BV(CSN) | BV(VREG_EN); \
        PORTB = BV(MOSI) | BV(SCK) | BV(CSN); \
	DDRE = BV(RESET_N); \
	PORTE = BV(RESET_N); \
	DDRD = BV(RLED) | BV(GLED) | BV(YLED); \
	PORTD = BV(RLED) | BV(YLED) | BV(GLED); \
    } while (0)

// 使能/禁止SPI接口
#define SPI_ENABLE()     (PORTB &= ~BV(CSN))
#define SPI_DISABLE()    (PORTB |= BV(CSN))

/*******************************************************************************************************
		CC2420引脚访问
 *******************************************************************************************************/
// CC2420 引脚访问

// 引脚状态
#define SFD_IS_1        (!!(PINE & BV(SFD)))
#define CCA_IS_1        (!!(PINE & BV(CCA)))
#define FIFO_IS_1       (!!(PINE & BV(FIFO)))
#define FIFOP_IS_1      (!!(PINE & BV(FIFOP)))
#define VREG_IS_1       (!!(PINB & BV(VREG_EN)))
#define RESET_IS_1      (!!(PINE & BV(RESET_N)))

// CC2420重置引脚
#define SET_RESET_ACTIVE()    PORTE &= ~BV(RESET_N)
#define SET_RESET_INACTIVE()  PORTE |= BV(RESET_N)

// CC2420 电压调节器使能引脚
#define SET_VREG_ACTIVE()     PORTB |= BV(VREG_EN)
#define SET_VREG_INACTIVE()   PORTB &= ~BV(VREG_EN)

/*******************************************************************************************************
                                       中断
*******************************************************************************************************/
#define INT7 	7
#define INTF7 	7
#define ISC71	7
#define ISC70	6
#define TOIE1   2

// 打开/关闭全局中断宏
#define ENABLE_GLOBAL_INT()         do { asm ("SEI"); } while (0)
#define DISABLE_GLOBAL_INT()        do { asm ("CLI"); } while (0)

// 外部中断7上升延触发(FIFOP) 
#define FIFOP_INT_INIT() \
		do { \
				EICRB = BV(ISC71) | BV(ISC70); \
				CLEAR_FIFOP_INT(); \
		} while (0)

// 外部中断7上的FIFOP
#define ENABLE_FIFOP_INT()          do { EIMSK |= BV(INT7); } while (0)
#define DISABLE_FIFOP_INT()         do { EIMSK &= ~BV(INT7); } while (0)
#define CLEAR_FIFOP_INT()           do { EIFR |= BV(INTF7); } while (0)

//timer1 interupt
#define ENABLE_TIMER1_INT()    do { TIMSK |= BV(TOIE1); } while (0) 
#define DISABLE_TIMER1_INT()    do { TIMSK &= ~BV(TOIE1); } while (0) 

 

#endif

⌨️ 快捷键说明

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