- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南昌航空大学实验报告
二〇二一年10月19日
课程名称: 感知层编程实验 实验名称: 电源管理及休眠__
学号: 姓名: 张闰美 同组人:_____________
指导老师评定: 签名:______________________
一.实验目的:
加深和巩固学生对于CC2530平台的电源管理及休眠等概念的理解
学生通过本实验了解和掌握电源管理、休眠编程方法
提高学生的上机和编程过程中处理具体问题的能力
二.实验要求:
实验要求自己独立的完成;
编写和调试过程中出现的问题要做好记录,并事后总结到报告中
实验程序调试完成后, 用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩
实验完成后,要上交实验报告。
三. 实验步骤:
在实验一的基础上加入休眠功能。
实验步骤与现象:按键S1,控制LED1和LED2交替闪烁,在若干秒后系统进入休眠直到再次按下S1,LED1和LED2交替闪烁。如此往复。
在上一次的基础上,增加休眠功能,采用PM3深度休眠。利用按键的外部中断唤醒系统
四. 程序框图设计:
五. 实验内容:
设置LED等相应IO口:
void InitLed(void)
{
P1DIR |= 0x03; //P1.0 P1.1定义为输出口
LedOnOrOff(1); //使得所有灯默认为熄灭状态
}
//点亮或熄灭所有灯 mode为0时点亮灯 mode为1时灯熄灭
void LedOnOrOff(uchar mode)
{
LED1=mode;
LED2=mode;
}
按键S1外部中断相关寄存器的配置:
P0IEN |= 0x2; //P0.1设置为中断方式1。中断使能
PICTL |=0x2; //下降沿触发
IEN1 |=0x20; //允许P0口中断
P0IFG = 0x00; //初始中断标志位
EA = 1; //打开总中断
中断服务函数:内核响应中断后执行的相应处理程序
#pragma vector =中断向量 (中断向量:中断服务程序的入口地址)
__interrupt void函数名称(void){
/*在这里编写中断处理的具体程序*/
}
#pragma vector = P0INT_VECTOR //I/O端口0外部中断
__interrupt void P0_ISR(void)
{
if(P0IFG0)
{
P0IFG =0; //清标志位
}
P0IF=0;
SysPowerMode(4); //正常工作模式
}
延时函数:(以毫秒为单位延时,msec延时参数,值越大,延时越久)
void DelayMS(uint msec)
{
uint i,j;
for(i=0;imsec;i++)
for(j=0;j535;j++);
}
设置系统工作模式(mode=0为PM0,1为PM1,2为PM2,3为PM3)
void SysPowerMode(uchar mode)
{
if(mode0 mode4)
{
SLEEPCMD |=mode; //设置系统睡眠模式
PCON = 0x01; //进入睡眠模式,通过中断唤醒
}
else
PCON = 0x00; //主动/空闲模 通过中断唤醒
}
六. 实验分析:
PM0 16/32M高速晶振启动 32768晶振启动,数字核心模块正常工作
PM1 16/32M高频晶振关闭 32768晶振启动,数字核心模块正常工作
PM2 16/32M高速晶振关闭 32768晶振启动,数字核心模块关闭,系统通过RESET/External Interrupt/SLEEP TIMER唤醒
PM3 晶振全部关闭,数字核心模块关闭,系统只能通过RESET/External Interrupt唤醒
主动模式:完全功能模式。稳压器的数字内核开启,16 MHz RC 振荡器或 32 MHz 晶体振荡器运行,或者两者 都运行。32 kHz RCOSC 振荡器或 32kHz XOSC 运行。
空闲模式:除了 CPU 内核停止运行(即空闲),其他和主动模式一样。
主动模式是完全功能的运行模式,CPU、外设和 RF 收发器都是活动的。数字稳压器是开启的。 主动模式用于一般操作。在主动模式下(SLEEPCMD.MODE = 0x00)通过使能 PCON.IDLE 位,CPU 内核 就停止运行,进入空闲模式。所有其他外设将正常工作,且 CPU 内核将被任何使能的中断唤醒(从空闲模式转
文档评论(0)