CC2530基础实验V1.00(4)

2020-03-27 06:16

通往无线桥梁 无线世界先锋

CLKCONCMD.TICKSPD 分频后再次分频) 000 不再分频 001 2 分频 010 4 分频 011 8 分频 100 16 分频 101 32 分频 110 64 分频 111 128 分频 4 3 2 1:0 START OVFIM CLR MODE[1:0] 0 1 0 00 读/写 读/写 0 R0/W1 读/写 T4 起停位 0 暂停计数,1 正常运行 溢出中断掩码 0 关溢出中断,1 开溢出中断 清计数值,写 1 使 T4CNT=0x00 T4 模式选择 00 自动重装 01 DOWN (从 T4CC0 到 0x00 计数一次) 10 模计数 (反复从 0x00 到 T4CC0 计数) 11 UP/DOWN(反复从 0x00 到 T4CC0 再到 0x00)

T4CCTL0 (T4 通道 0 捕获/比较控制寄存器) 位号 7 6 5:3 位名 - IM CMP[7:0] 复位值 0 1 000 操作性 读 读/写 读/写 预留 通道 0 中断掩码 0 关中断,1 开中断 通道 0 比较输出模式选择,指定计数值过 T4CC0 时的发生事件 000 输出置 1(发生比较时) 001 输出清 0(发生比较时) 010 输出翻转 011 输出置 1(发生上比较时)输出清 0(计 数值为 0 或 UP/DOWN 模式下发生下比较) 100 输出清 0(发生上比较时)输出置 1(计 数值为 0 或 UP/DOWN 模式下发生下比较) 101 输出置 1(发生比较时)输出清 0(计 数值为 0xff 时) 110 输出清 0(发生比较时)输出置 1(计 功能描述 成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com

028-86786586 86615004

86617556(传真)

通往无线桥梁 无线世界先锋

2 1:0 MODE- CAP 0 00 读/写 读/写 数值为 0x00 时) 111 预留 T4 通道 0 模式选择 0 捕获,1 比较 T4 通道 0 捕获模式选择 00 没有捕获 01 上升沿捕获 10 下降沿捕获 11 边沿捕获

T4CC0 (T4 通道 0 捕获/比较值寄存器)

位号 7:0

位名 VAL[7:0] 复位值 0x00 操作性 读/写 功能描述 T4 通道 0 比较/捕获值

T4CCTL1 (T4 通道 1 捕获/比较控制寄存器) 位号 7 6 5:3 位名 - IM CMP[7:0] 复位值 0 1 0 操作性 读 读/写 读/写 预留 通道 1 中断掩码 0 关中断,1 开中断 通道 1 比较输出模式选择,指定计数值过 T4CC0 时的发生事件 000 输出置 1(发生比较时) 001 输出清 0(发生比较时) 010 输出翻转 011 输出置 1(发生上比较时)输出清 0 (计数值为 0 或 UP/DOWN 模式下发生下 比较) 100 输出清 0(发生上比较时)输出置 1 (计数值为 0 或 UP/DOWN 模式下发生下 比较) 101 输出置 1(发生比较时)输出清 0(计 数值为 0xff 时) 110 输出清 0(发生比较时)输出置 1(计 数值为 0x00 时) 111 预留 功能描述 2 1:0 MODE- CAP 0 0000 读/写 读/写 T4 通道 1 模式选择 0 捕获,1 比较 T4 通道 1 捕获模式选择 成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com

028-86786586 86615004

86617556(传真)

通往无线桥梁 无线世界先锋

00 没有捕获 01 上升沿捕获 10 下降沿捕获 11 边沿捕获

T4CC1 (T4 通道 1 捕获/比较值寄存器)

位号 7:0

位名 VAL[7:0] 复位值 0x00 操作性 读/写 功能描述 T4 通道 1 比较/捕获值

实验相关函数

void Init_T4_AND_LED(void)函数原型:

void Init_T4_AND_LED(void)

{

P1DIR = 0X03; led1 = 1; led2 = 1;

TIMER34_INIT(4);

//初始化 T4

TIMER34_ENABLE_OVERFLOW_INT(4,1); //开 T4 中断

TIMER34_SET_CLOCK_DIVIDE(4,128); TIMER34_SET_MODE(4,0); TIMER34_START(4,1);

//自动重装 00->0xff //启动

};

函数功能:将 I/0 P10,P11 设置为输出去控制 LED,将 T4 设置为自动重装模式,定时器时钟

16 分频,并启动 T4。

void T4_ISR(void);函数原型:

#pragma vector = T4_VECTOR interrupt void T4_ISR(void) {

//IRCON = 0x00;

//清中断标志,硬件自动完成

if(counter<200)counter++; //10 次中断 LED 闪烁一轮

else

{

counter = 0; RLED = !RLED;

//计数清零

//改变小灯的状态

}

}

函数功能:这是一个中断服务程序,每 200 次中断改变一次红色 LED 的状态。 重要的宏定义

成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com

028-86786586 86615004

86617556(传真)

通往无线桥梁 无线世界先锋

开启溢出中断

#define TIMER34_ENABLE_OVERFLOW_INT(timer,val) \\

do{T##timer##CTL = (val) ? T##timer##CTL | 0x08 : T##timer##CTL & ~0x08; \\ EA = 1; T4IE = 1; }while(0)

\\ \\

功能:打开 T4 的溢出中断。 复位 T4 相关寄存器

#define TIMER34_INIT(timer) do {

T##timer##CTL

\\ \\

= 0x06; \\

T##timer##CCTL0 = 0x00; \\ T##timer##CC0

= 0x00; \\

T##timer##CCTL1 = 0x00; \\ T##timer##CC1 } while (0)

= 0x00; \\

功能:将 T4 相关的寄存器复位到 0 控制 T4 起停

#define TIMER#define TIMER34_START(timer,val)

(T##timer##CTL = (val) ? T##timer##CTL | 0X10 : T##timer##CTL&~0X10)

\\

功能:timer 为定时器序号,只能取 3 或 4。val 为 1,定时器正常运行,val 为 0,定时器停止 计数

设置 T4 工作方式

#define TIMER3_SET_MODE(val)

\\

\\ \\

do{

T4CTL &= ~0X03;

(val==1)?(T4CTL|=0X01): /*DOWN (val==2)?(T4CTL|=0X02): /*Modulo (val==3)?(T4CTL|=0X03): /*UP / DOWN (T4CTL|=0X00);

/*free runing */

*/ \\ */ \\ */ \\ \\

}while(0)

#define T4_MODE_FREE #define T4_MODE_DOWN

0X00 0X01

#define T4_MODE_MODULO 0X02 #define T4_MODE_UP_DOWN 0X03

功能:根据 val 的值将 T4 设置为不同模式,一共 4 种模式。

成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com

028-86786586 86615004

86617556(传真)

通往无线桥梁 无线世界先锋

1.3 中断实验

1.3.1CC2530 基础实验 8:定时器中断

实验介绍

用定时器 4 来改变小灯的状态,T4 每 2000 次中断小灯闪烁一轮,闪烁的时间长度为 1000 次 中断所耗时间。

实验相关寄存器

实验中操作了的寄存器有 P1,P1SEL,P1DIR,T4CTL,T4CCTL0,T4CC0,T4CCTL1,T4CC1, IEN0,IEN1 等寄存器。 P1 参见 CC2530 实验 1 P1SEL 参见 CC2530 实验 1 P1DIR 参见 CC2530 实验 1 T4CTL 参见 CC2530 实验 7

T4CCTL0 T4CC0 T4CCTL1 T4CC1 实验相关函数

void Init_T4_AND_LED(void);函数原型:

参见 CC2530 实验 7 参见 CC2530 实验 7 参见 CC2530 实验 7 参见 CC2530 实验 7

void Init_T4_AND_LED(void)

{

P1DIR = 0X03; led1 = 1; led2 = 1;

TIMER34_INIT(4);

//初始化 T4

TIMER34_ENABLE_OVERFLOW_INT(4,1); //开 T4 中断

TIMER34_SET_CLOCK_DIVIDE(4,128); TIMER34_SET_MODE(4,0); TIMER34_START(4,1);

//自动重装 00->0xff //启动

};

函数功能:将 I/0 P10,P11 设置为输出去控制 LED,将 T4 设置为自动重装模式,定时器时钟 16 分频,并启动 T4。 void T4_ISR(void);函数原型:

#pragma vector = T4_VECTOR

成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com 028-86786586 86615004 86617556(传真)


CC2530基础实验V1.00(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三角形(含平行线)专题复习一

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: