网站大量收购独家精品文档,联系QQ:2885784924

感知层编程实验-实验二_休眠.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

131****7710 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档