应广单片机 PMS150G 161 171 基础例子【sleep】
此例子可以测试sleep时候的功耗,测试的时候 要注意sleep退出时间,不能让其反复立马进去,要不然,不好测试。
参考miniC编程助手测试例子,方便自己测试验证
//===========================================//
// 休眠
//主要介绍了省电模式和掉电模式
//省电模式介绍了用计数器唤醒和IO唤醒,
// 例中介绍了T16唤醒后且num自加超过100后退出休眠,即针对不是IO脚电平变化的唤醒条件的唤醒
// IO唤醒的唤醒条件可参考掉电模式,其他不变
//掉电模式介绍了IO唤醒
// 例中介绍了IO脚电平变化后唤醒,即针对IO脚电平变化的唤醒条件的唤醒
//===========================================//
#include "extern.h"byte CLKMD_BK;//=======省电模式=========
byte num;
word reload_T16;BIT KEY : PA.4;
bit LED : PA.3 //定义LED灯的引脚void Save_power(void)
{//======User can add code=====//进入省电模式前动作,如关灯、关计数器等//============================CLKMD_BK = CLKMD; //保存休眠前的时钟num = 0;while(1){$ CLKMD ILRC/1,En_IHRC,En_ILRC; //系统时钟选择,是否启用IHRC,是否启用ILRC,(En_IHRC和En_ILRC不写为停用,写为启用)//系统时钟可选择IHRC/4, IHRC/16, IHRC/2, IHRC/8, ILRC/16, EOSC/4, IHRC/32, EOSC/2, IHRC/64, EOSC/1, EOSC/8, ILRC/4, ILRC/1//选择系统时钟为ILRC/1,启用IHLC和IHRC;(注:两个RC振荡器至少有一个开启,否则会出现宕机)CLKMD.En_IHRC = 0; //关闭高频IHRCnop;//========设置T16定时,详情请参考T16=========$ T16M ILRC,/1,bit8;reload_T16 = 0;stt16 reload_T16;stopexe; //进入省电模式,T16计时溢出时唤醒$ CLKMD IHRC/64,EN_IHRC,EN_ILRC;//选择系统时钟为IHRC/64,启用IHLC和IHRC;CLKMD.En_ILRC = 0; //关闭低频ILRCnop;//=======编写唤醒条件=========//例如num自加超过100后唤醒,该方法针对不是IO脚电平变化的唤醒条件num++;if(num > 100) //假如发生唤醒而且满足唤醒条件,就返回正常工作{ //否则停留在省电模式,继续休眠break;}}CLKMD = CLKMD_BK; //恢复休眠前的时钟//======User can add code=====//唤醒后打开需要的动作,比如开灯、定时器等//============================
}
//=======掉电模式=========
void Power_down(void)
{//======User can add code=====//进入省电模式前动作,如关灯、关计数器等//============================CLKMD_BK = CLKMD; //保存休眠前的时钟//PAC.0 = 0;PAPH.0 = 1; //将PA0设置为输入上拉//PADIER = 0b0001_0001; //将PA0设置为数字模式//休眠前需要切换低频ILRC用来防止唤醒失败$ CLKMD ILRC/1,En_IHRC,En_ILRC; //系统时钟选择,是否启用IHRC,是否启用ILRC,(En_IHRC和En_ILRC不写为停用,写为启用)//系统时钟可选择IHRC/4, IHRC/16, IHRC/2, IHRC/8, ILRC/16, EOSC/4, IHRC/32, EOSC/2, IHRC/64, EOSC/1, EOSC/8, ILRC/4, ILRC/1//选择系统时钟为ILRC/1,启用IHLC和IHRC;(注:两个RC振荡器至少有一个开启,否则会出现宕机)CLKMD.En_IHRC = 0; //关闭高频nop;while(1){stopsys; //进入断电模式//=======编写唤醒条件=========//例如PA0由高变低唤醒,该方法针对IO脚电平变化的唤醒条件if(!PA.0) //假如发生唤醒而且检查OK,就返回正常工作{ //否则停留在断电模式break;}}$ CLKMD IHRC/64,EN_IHRC,EN_ILRC; //选择系统时钟为IHRC/64,启用IHLC和IHRC;nop;CLKMD = CLKMD_BK; //恢复休眠前的时钟//======User can add code=====//唤醒后打开需要的动作,比如开灯、定时器等//============================
}void IO_Init(void)
{//----------------------------PA = 0b0001_1000;PAC = 0b0000_1000; //1:输出 0:输入PAPH = 0b0001_1001; //1:加上拉 0:不加上拉PB = 0b0000_0000;PBC = 0b0000_0000;PBPH = 0b0000_0000;PADIER = 0b0001_0001; //将PA4 PA0设置为数字模式PBDIER = 0b0000_0000; //1: 设置为数字模式 //单个IO设置//$ PA.0 out,high; //PA0输出高//$ PA.3 out,low; //PA3输出低
}
void FPPA0 (void)
{.ADJUST_IC SYSCLK=IHRC/16, IHRC=16MHz, VDD=5V;.delay 40000;IO_Init();$ KEY in,pull; //PA4输入上拉$ LED out,high; //初始把灯点亮(高电平点灯)while (1){//Save_power(); //省电模式休眠if(!KEY) //KEY PA3 拉低进入Sleep模式,PA0拉低退出睡眠模式,方便测试Sleep功耗{.delay 10000; //.delay 1000000; 1000ms = 1sif(!KEY) {Power_down(); //掉电模式休眠//Save_power(); //省电模式休眠//$ LED toggle;}}}
}void Interrupt (void)
{pushaf;if (Intrq.T16){ // T16 Trig// User can add codeIntrq.T16 = 0;//...}popaf;
}
最小系统板子 测试电流,可惜我自己的万用表精度太差,无法体现出来ua级别 就不上图了
应广单片机 PMS150G 161 171 基础例子【sleep】相关推荐
- 应广单片机 PMS150G、FPC161 基础例子【GPIO设置】
应广单片机 PMS150G.FPC161 基础例子[GPIO设置] 调试方式:仿真器5S-I-S02B 编译软件:FPPA IDE 编译语言:mini C 电脑系统:win10 软件功能:设置GPIO ...
- 手机c语言mini,一、应广单片机的Mini-C语言基础
一.概述 项目需要性价比高一点的芯片,在澄海这边,台湾的芯片占了很大的市场.台湾芯片的特点是便宜,没办法,玩具出口生产量太大,1分钱的差价都有可能累积出大价钱.选型时选了应广单片机.对于用惯了C开发的 ...
- 应广单片机 PMS150G,PWM例程
前言 基于PMS150G操控PWM调节占空比做到呼吸灯,调节灯光亮度的作用 直接看代码吧,都有注释 代码1 呼吸灯 #include "extern.h"void TM2_Init ...
- 二、应广单片机点亮一个灯
上一节介绍基础,由于时间仓促,写得十分模糊.这一节开始从一个个实际例子,向大家展示应广单片机的各项功能.由于看本文的读者层次不相同,这里全部按照初学者视之. 废话少说,上例程: //========= ...
- 应广单片机PMS152
今天我们来讲讲应广单片机PMS152.PMS152系列是一款IO类型,完全静态以OTP为程序基础的CMOS 8bit 微处理器.它运用RISC的架构并且所有的指令架构的执行周期都是一个指令周期,只有 ...
- 应广单片机红外发射例程
应广单片机红外发射例程,采用PMS150G,其他的MCU型号直接修改就好 //--------------PMS150G---------- // _@ // |1vdd gnd8| // |2pa7 ...
- 应广单片机开发案例应广单片机11bitPWM配置
应广单片机有两种硬件pwm,一种是8bit,另外一种是11bit,8bit的配置稍微简单一些.现在以pms133/psm134为例子,贴一个11bit pwm配置的例子.修改一下可以应用于应广其他系列 ...
- 应广单片机PMC150/PMS150
前面我们讲了应广单片机PMS152,那么我们今天来讲一下应广单片机另外一个型号PMC150/PMS150. PMC150/PMS150是一个IO类型.完全静态,以OTP为程序存储基础的单片机.它运用R ...
- 应广单片机11bitPWM配置
应广单片机有两种硬件pwm,一种是8bit,另外一种是11bit,8bit的配置稍微简单一些.现在以pms133/psm134为例子,贴一个11bit pwm配置的例子.修改一下可以应用于应广其他系列 ...
最新文章
- ASP.NET的WebFrom组件LinkButton编程
- 48. C# -- 事件
- python中pow_python – 为什么pow(x,y)的时间复杂度为O(1),而x ** y为O(n)?
- SQL Server 存储引擎-剖析Forwarded Records
- 2019年度最受欢迎中国开源软件评选, 请给JeecgBoot 投票,谢谢支持
- matlab的annotation,科学网—annotation in matlab Graph - 夏靖的博文
- 为什么构造函数不能声明为虚函数?
- 自己手动复现一个熊猫烧香病毒
- 【密码学原理与实践】(五)希尔密码
- 001.UG_NX概述
- C语言程序设计笔记(浙大翁恺版) 第七章:函数
- 四小时学python爬虫爬取信息系列(第一天)
- [ASP.NET]web实现用FTP上传、下载文件(附源码)
- Could not start on port 1099 3837
- 会议签到web_基于Web的网络签到系统设计与实现
- Java 秒数分钟转小时分钟
- 离散数学复习重点(1)
- 计算机仿真技术-基于matlab的电子信息类课程课后答案,计算机仿真技术——基于MATLAB的电子信息类课程(第3版)...
- 汇编中的la_汇编语言中,SP,BP ,SI,DI作用?
- 百度天工AIoT打造农业种植方案,用数字经济助力建设农业新模式
热门文章
- word文档转html在线预览Demo
- cdma2000解析_CDMA2000 1x EV-DO 分层协议解析
- 苹果官方付费升级内存_vivo超大福利惠及老用户,内存升级覆盖全国官方服务中心...
- 计算机对人类发展进步的意义,量子力学对人类发展的意义
- Linux快速学习-进程号端口查询
- php中克隆对象,复制与克隆对象《 PHP 面向对象 》
- 软硬件视频会议互通方案
- H5 IOS webview设置背景透明
- python攻击某个wifi设备使断网_Python实现WiFi断线自动重连的方法详解
- AR/VR中使用Overlay提升清晰度