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款,类型包括重力加速度.地磁.陀螺仪.温度.湿度.大气压力传感器等.在调试 ...
随机推荐
- 第三章 dubbo源码解析目录
7.6 服务远程暴露 - 注册服务到zookeeper 为了安全:服务启动的ip全部使用10.10.10.10 远程服务的暴露总体步骤: 将ref封装为invoker 将invoker转换为expor ...
- 工作流调度器-Azkaban
1.工作流调度器 1.为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 各任务单元之间存在时间先后 ...
- RocketMQ原理—1.RocketMQ整体运行原理
大纲 1.RocketMQ整体运行原理的介绍顺序 2.RocketMQ生产者是如何发送消息的 3.Broker是如何持久化接收到的消息到磁盘上 4.基于DLedger技术的Broker主从同步原理 5 ...
- 独立看门狗IWDG
一.简介 STM32F10xxx内置两个看门狗(独立看门狗是12位递减计数器,窗口看门狗是7位递减计数器),提供了更高的安全性.时间的精确性和使用的灵活性.两个看门狗设备(独立看门狗和窗口看门 ...
- el-table当前行的获取和设置,用于表格行操作
1.在vue的data区声明当前行变量对象,如果当前行的信息用于了按钮的状态则需要赋予默认值,否则会报找不到属性的错误,比如下面会用到当前记录的status属性值控制按钮是否可用. //表格选中的行 ...
- .NET最佳实践:避免同步读取HttpRequest
为什么要避免同步读取 ASP.NET Core 中的所有 I/O 操作都是异步的.服务器实现了 Stream 接口,该接口同时具备同步和异步的方法. 在进行 I/O 操作时,应优先使用异步方法,以避免 ...
- 什么是Lambda架构?
一.简介 Lambda架构(Lambda Architecture)是由Twitter工程师南森·马茨(Nathan Marz)提出的大数据处理架构. 这一架构的提出基于马茨在BackType和Twi ...
- 开源的 DeepSeek-R1「GitHub 热点速览」
春节假期回来,一睁眼全是王炸级的开源模型 DeepSeek-R1! GitHub 地址→github.com/deepseek-ai/DeepSeek-R1 DeepSeek-R1 开源还不到一个月, ...
- WPF 控件库
1. wpftoolkit: https://archive.codeplex.com/?p=wpftoolkit 2. wpg : https://archive.codeplex.com/? ...
- ABB机器人IRB 6700维修保养技巧
通过与子锐机器人维修保养服务定制合理的机器人保养工作,可以确保ABB机器人IRB 6700的持续稳定运行,延长其使用寿命,为企业的生产提供有力保障. 一.ABB机器人IRB 6700日常检查与维护 外 ...