APT32 RTC+低功耗调试笔记
1、项目需求
采用APT32F1023单片机,内部27K时钟驱动RTC,内部6M定时器作为主频。周期检测外部供电是否恢复,如果恢复则使用正常工作模式,否则仅开启RTC,关闭其他外设,进入低功耗待机模式。
2、存在问题
A:开启看门狗后,会周期触发看门狗复位
B: 进入低功耗模式后,由于ADC采集异常,外部供电恢复无法被检测到,也就无法恢复到正常工作模式。
3、心得体会
A: 注意ADC重新配置的时机
不能不重新配置,否则无法采集新的ADC值
不能初始化的过于频繁,否则留给ADC采集的时间不足,可能会造成多通道采集中的一个或多个通道还未完成转换,则采集数据不正确。
B: 注意看门狗的及时喂狗
我们知道,看门狗的触发周期内,要完成喂狗操作,否则单片机会看门狗复位重启。本例中看门狗的周期是8秒,我们选择RTC唤醒的周期是5秒,然后在RTC唤醒中断中喂狗,ADC采集中保险起见,也喂狗。
//------------ WDT FUNTION --------------------------------/
SYSCON_IWDCNT_Config(IWDT_TIME_8S, IWDT_INTW_DIV_7); // WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S
SYSCON_WDT_CMD(DISABLE); // enable WDT
SYSCON_IWDCNT_Reload(); // reload WDT
IWDT_Int_Enable();
void ADCIntHandler(void)
{
uint16_t adc_v = 0;
if ((ADC0->SR & ADC12_EOC) == ADC12_EOC) // ADC EOC interrupt
{
ADC0->CSR = ADC12_EOC;
adc_v = ADC12_DATA_OUPUT(0);
adc_val_ntc = adc_v * 5100 / 4096;
adc_v = ADC12_DATA_OUPUT(1);
if (adc_v > 0) {
adc_val_power = adc_v * 5100 / 4096 * 11;
}
adc_v = ADC12_DATA_OUPUT(2);
if (adc_v > 0) {
adc_val_sensor = adc_v * 5100 / 4096;
}
adc_convert_ok = 1;
SYSCON_IWDCNT_Reload();
// ADC12_Control(ADC12_START);
}}
void RTCIntHandler(void)
{
// ISR content ...
if ((RTC->MISR & ALRA_INT) == ALRA_INT) // ALRAR
{
RTC->ICR = ALRA_INT;
RTC->KEY = 0XCA53;
RTC->CR = RTC->CR | 0x01;
RTC->TIMR = (0x10 << 16) | (0x00 << 8) | (0x00); // Hour bit6->0:am 1:pm
while (RTC->CR & 0x02)
; // busy 判断TIMR DATR ALRAR ALRBR数据写完
RTC->CR &= ~0x1;
} else if ((RTC->MISR & ALRB_INT) == ALRB_INT) // ALRBR
{
RTC->ICR = ALRB_INT;
} else if ((RTC->IMCR & CPRD_INT) == CPRD_INT) // CPRD
{
RTC->ICR = CPRD_INT;
SYSCON_IWDCNT_Reload();
} else if ((RTC->IMCR & RTC_TRGEV0_INT) == RTC_TRGEV0_INT) {
RTC->ICR = RTC_TRGEV0_INT;
} else if ((RTC->IMCR & RTC_TRGEV1_INT) == RTC_TRGEV1_INT) {
RTC->ICR = RTC_TRGEV1_INT;
}
}
APT32 RTC+低功耗调试笔记的更多相关文章
- Tomcat调试笔记
调试笔记 在使用Tomcat过程中经常碰到问题,导致tomcat启动失败.如下↓ 由于报错太过笼统,我根本无法找出错误.后来我切换到Console视图下,看到了如下错误信息. 根据报错信息,错误原因是 ...
- JavaScript特效(调试笔记)
JavaScript特效 一.在网页上显示当前的时间日期,例如:“2016年3月26日 星期六”. js源代码: function getTime() { var today = new Date() ...
- USB wifi调试笔记
本文以realtek 8192CU WiFi模块为例,介绍USB wifi在Jelly Bean 4.1的调试笔记. 1.WIFI打不开现象概述 WiFi打不开是指您在UI的settings下选中Wi ...
- ida动态调试笔记
ida动态调试笔记 目标文件:阿里安全挑战赛的第二题 点击打开链接 使用环境:ida6.8点击打开链接,adt bundle点击打开链接 首先打开avd安卓模拟器,界面如下: 在dos下运行adb命令 ...
- modbus-poll和modbus-slave工具的学习使用——modbus协议功能码3的解析(及欧姆龙温控器调试笔记)
最近的项目中使用到了欧姆龙的温控器,里面有很多的通信方式,我们使用的常见的modbus——RTU方式,其他方式我们不使用,其中通信手册上面有很多通信的实例,欧姆龙modbus还区分4字节模式和2字节模 ...
- 记录Typescript的学习调试笔记(比 javascript更具面向对象,强类型检查,静态字段,适合现代的大团队分工与管理风格).
1.)先来一段Typescript的环境安装. 安装nodejs ,下载地址:https://nodejs.org/en/download/ //(node-v12.1 ...
- GDB调试笔记
参考资料:GDB调试精粹及使用实例 # 调试实例 #include <iostream> #include <cstring> using namespace std; ][] ...
- 《C#并行编程高级教程》第7章 VS2010任务调试 笔记
没有什么好说的,主要是将调试模式下的Parallel Tasks窗体和Parallel Stacks窗体.折腾一下应该比看书效果好.(表示自己没有折腾过) 另外值得注意的是,主线程不是一个任务.所以主 ...
- SIM900A模块HTTP相关调试笔记
SIM900A模块使用笔记 更新2018-12-8 正常工作状态: 接线方法: 首先将 AT 写入字符串输入框,然后点击 发送.因为模块波特率默认是 9600,所以两条指令的显示都是没有问题的:如果将 ...
- 博世传感器调试笔记(一)----加速度传感器BMA253
公司是bosch的代理商,最近一段时间一直在公司开发的传感器demo板上调试bosch sensor器件.涉及到的器件有7,8款,类型包括重力加速度.地磁.陀螺仪.温度.湿度.大气压力传感器等.在调试 ...
随机推荐
- Educational Codeforces Round 168 (Rated for Div. 2)
题目链接:Educational Codeforces Round 168 (Rated for Div. 2) 总结:题目较简单,但是发挥很一般.A,B题一直读假题,卡了半个小时:C题用char存i ...
- ORACLE多表级联更新( MERGE、UPDATE FROM JOIN替代语句)
方法一:MERGE语句的语法 MERGE INTO 表名 USING 表名/视图/子查询 ON 连接条件 --多个条件注意()括起来 WHEN MATCHED THEN -- 当匹配得上连接条件时 更 ...
- win10安装MongoDB 5.0
1.首先去官网下载安装包:https://www.mongodb.com/try?tck=docs_navbar 2.安装过程一路下一步就行,选择complete安装,可以勾选安装Compass工具 ...
- MOS管耗散功率的计算
MOS管的功率,一般是指Maximum Power Dissipation--Pd,最大的耗散功率,具体是指MOS元件的容许损失,可从产品的热阻上求得.当Tc=25度时,通过附加最大容许损耗Pd,则变 ...
- QT5笔记:5. QtCreator 的快捷键
常用的快捷键: F4 同名头文件和源文件之间切换 F2 声明和定义切换 Ctrl + / 注释 F10\F11 单步调试
- AI在电子游戏中的应用:如何让虚拟世界更具沉浸感
在过去的几十年里,电子游戏已从简单的像素化图形演变为高度复杂.视觉震撼的虚拟世界.从<超级马里奥>到<荒野大镖客2>,游戏的画面.音效和交互方式不断突破技术的极限.近年来,人工 ...
- flutter - [01] Dart概述
题记部分 一.什么是dart dart是由谷歌开发的计算机编程语言,可以被用于web.服务器.移动应用和物联网等领域的开发 dart诞生于2011年,号称要取代JavaScript.但是过去的几年中一 ...
- 单元测试三部曲-AAA模式
AAA 指的是 "Arrange, Act, Assert",这是一种通用的单元测试模式. 在测试方法中, 1.首先对测试对象进行准备(Arrange), 2.然后调用要测试的方法 ...
- ITSS 运维2.0 实践
最近公司在评审itss 2.0,参与了一部分工作,对工作过程中的问题梳理如下: 大的背景:评审itss 2.0会有评审 为什么公司会申请各种资质 首次申请资质后,公司可以申请一笔费用(x万元)! 申请 ...
- 关于DC1的渗透报告:
打开DC1,发现我们需要登录DC1,但是我们不知道密码,所以我们只能扫描分析一下他的IP地址,在kali中我们用nmap来扫描发现 DC1的IP地址也许是192.168.42.130,我们看看他开了什 ...