首页 > 其他分享 >[nrf51][nrf52][low power] 使用RTX时 如何进入低功耗

[nrf51][nrf52][low power] 使用RTX时 如何进入低功耗

时间:2022-10-31 21:01:27浏览次数:66  
标签:power 中断 nrf51 GPIOTE 低功耗 NRF IRQn RTC1 PORT


1、由于RTX使用了RTC1中断,导致频繁唤醒,无法进入睡眠状态。
2、思路:进入低功耗前,关闭RTC1电源,按键唤醒后重新配置RTC1。

伪代码:
进入低功耗前

1.关闭外设GPIO
nrf_gpio_cfg_default(N);

2.关闭串口
NRF_UART0->ENABLE = 0;
NRF_UART0->POWER = 0;
app_uart_close();
3.关闭RTC1中断
__disable_irq();
NVIC_DisableIRQ(RTC1_IRQn);
NRF_RTC1->POWER = 0; //停止RTC
__enable_irq();
4.设置按键中断
KEY_IRQn_INIT();
/*
内容举例
NRF_GPIO->PIN_CNF[Config_Key1_PORT_PIN] |= (GPIO_PIN_CNF_SENSE_Low << GPIO_PIN_CNF_SENSE_Pos);
NRF_GPIOTE->INTENSET = GPIOTE_INTENSET_PORT_Msk; //使能中断
NVIC_SetPriority(GPIOTE_IRQn, 1); //中断优先级设定为1
NVIC_EnableIRQ(GPIOTE_IRQn); //使能总中断
*/
5.进入睡眠
sd_app_evt_wait();

按键中断函数:

void GPIOTE_IRQHandler(void)                       //GPIOTE中断服务函数
{
unsigned int expected_time;
if (NRF_GPIOTE->EVENTS_PORT != 0)
{
NRF_GPIOTE->EVENTS_PORT = 0; //中断清零
if (NRF_RTC1->POWER == 0)
{
NVIC_EnableIRQ(RTC1_IRQn);
NRF_RTC1->POWER = 1; //启动RTC
NRF_RTC1->EVENTS_TICK = 1; //启动计数
NRF_RTC1->TASKS_START = 1; //开启计数
NRF_RTC1->PRESCALER = 0x20; //设置时钟基准32768 0x20==32
}
if (nrf_gpio_pin_read(Config_Key5_PORT_PIN) == 0)//检测是否为该按键唤醒
{

}
}
}


标签:power,中断,nrf51,GPIOTE,低功耗,NRF,IRQn,RTC1,PORT
From: https://blog.51cto.com/xuejianqiang/5811277

相关文章

  • PowerShell DSC由哪个进程运行?
    查询msft_providersGet-WmiObjectmsft_providers|selectprovider获得进程$dscProcessID=Get-WmiObjectmsft_providers|Where-Object{$_.provider-like'ds......
  • [ANT+][nrf51422][s210] 自行车车灯 数据第17页–联网灯的产品信息(0x11)
    数据页17是处于连接状态时从ANT+自行车灯广播的数据页之一。所有主灯应根据控制器的要求发送此页面。作为数据页轮发的一部分,可以可选地将此页作为从ANT+自行车灯广播的主要......
  • Power Automate获取sharepoint list记录中的附件,并将附件填写到审批中
    1、定义一个数组变量,用于存储附件数组  2、 获取sharepointList中的附件  3、循环获取附件中的每一个文件的内容,并追加到变量数组  {"Name":@{item......
  • [nrf51][nrf52] 开发ibeacon指南
    入门iBeacon概述在iOS7中引入的iBeacon是一项令人兴奋的技术,可以实现新的位置感知可能的应用程序。利用低能耗蓝牙(BLE),一种具有iBeacon技术的设备可以用来建立对象周围的......
  • [nrf51822] nrf51 创建服务出现 NRF_ERROR_NO_MEM
    err_code=sd_ble_uuid_vs_add(&base_uuid,&p_led->uuid_type);softdevice_handler.c–softdevice_enable_get_default_config()原因1:数量不够增大uuid_count数量p_ble_e......
  • [nrf51][nrf52] nrfconnect 安装说明指南
    ​​最新nrfconnect-setup-3.10.0​​​官方下载​​根据流程安装完毕后,找到C:\Users\USER.nrfconnect-apps路径。(USER是自己的用户名)替换apps.json内容{"pc-nrfconnect......
  • Vim使用方法 PowerVim使用方法
    如果是初学vi,运行一下vimtutor是个聪明的决定。(如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutorzh)在终端中直接输入:vimtutor-移动光标:    ......
  • PowerShell基础
    PowerShell基础目录PowerShell基础1PowerShell简介2基本概念2.1.ps1文件2.2执行策略2.3运行脚本2.4管道3PowerShell常用命令3.1文件操作类命令3.2绕过本地权......
  • 【CF1120D】Power Tree(建图,差分,最小生成树)
    题面题意有点难懂。主要是洛谷给的翻译太zz了。大概的意思是:给定一棵\(n\)个点的有根树,\(1\)为根,每一个点有一个代价\(c_i\)。然后有两个人Alice和Bob在玩游......
  • check power supply check cpu top
    lshw-cpower powersupplymwhhttps://www.eia.gov/energyexplained/electricity/electricity-in-the-us-generation-capacity-and-sales.php installpwrstatht......