【STM8S】 AWU低功耗模式

发布者:Serene123最新更新时间:2021-10-19 来源: eefocus关键字:STM8S  AWU  低功耗模式 手机看文章 扫描二维码
随时随地手机看文章

/**

  **********************************  STM8S  ***********************************

  * @文件名     : bsp_awu.c

  * @作者       : strongerHuang

  * @库版本     : V2.2.0

  * @文件版本   : V1.0.0

  * @日期       : 2017年05月10日

  * @摘要       : 自动唤醒源文件

  ******************************************************************************/

/*----------------------------------------------------------------------------

  ----------------------------------------------------------------------------*/

/* 包含的头文件 --------------------------------------------------------------*/

#include "AWU.h"

#include "stm8s_awu.h"

#include "stm8s_tim3.h"

/************************************************

函数名称 : AWU_LSIMeasurement

功    能 : LSI时钟测量

参    数 : 无

返 回 值 : 无

作    者 : strongerHuang

*************************************************/

uint32_t AWU_LSIMeasurement(void)

{

  uint32_t lsi_freq_hz = 0x0;

  uint32_t fmaster = 0x0;

  uint16_t ICValue1 = 0x0;

  uint16_t ICValue2 = 0x0;

  /* Get master frequency */

  fmaster = CLK_GetClockFreq();

  /* Enable the LSI measurement: LSI clock connected to timer Input Capture 1 */

  AWU->CSR |= AWU_CSR_MSR;

#if defined (STM8S903) || defined (STM8S103) || defined (STM8S003)

  /* Measure the LSI frequency with TIMER Input Capture 1 */

  /* Capture only every 8 events!!! */

  /* Enable capture of TI1 */

TIM1_ICInit(TIM1_CHANNEL_1, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI, TIM1_ICPSC_DIV8, 0);

  /* Enable TIM1 */

  TIM1_Cmd(ENABLE);

  /* wait a capture on cc1 */

  while((TIM1->SR1 & TIM1_FLAG_CC1) != TIM1_FLAG_CC1);

  /* Get CCR1 value*/

  ICValue1 = TIM1_GetCapture1();

  TIM1_ClearFlag(TIM1_FLAG_CC1);

  /* wait a capture on cc1 */

  while((TIM1->SR1 & TIM1_FLAG_CC1) != TIM1_FLAG_CC1);

  /* Get CCR1 value*/

  ICValue2 = TIM1_GetCapture1();

  TIM1_ClearFlag(TIM1_FLAG_CC1);

  /* Disable IC1 input capture */

  TIM1->CCER1 &= (uint8_t)(~TIM1_CCER1_CC1E);

  /* Disable timer2 */

  TIM1_Cmd(DISABLE);

#else  

  /* Measure the LSI frequency with TIMER Input Capture 1 */

  /* Capture only every 8 events!!! */

  /* Enable capture of TI1 */

  TIM3_ICInit(TIM3_CHANNEL_1, TIM3_ICPOLARITY_RISING, TIM3_ICSELECTION_DIRECTTI, TIM3_ICPSC_DIV8, 0);

  /* Enable TIM3 */

  TIM3_Cmd(ENABLE);

/* wait a capture on cc1 */

  while ((TIM3->SR1 & TIM3_FLAG_CC1) != TIM3_FLAG_CC1);

/* Get CCR1 value*/

  ICValue1 = TIM3_GetCapture1();

  TIM3_ClearFlag(TIM3_FLAG_CC1);

  /* wait a capture on cc1 */

  while ((TIM3->SR1 & TIM3_FLAG_CC1) != TIM3_FLAG_CC1);

    /* Get CCR1 value*/

  ICValue2 = TIM3_GetCapture1();

TIM3_ClearFlag(TIM3_FLAG_CC1);

  /* Disable IC1 input capture */

  TIM3->CCER1 &= (uint8_t)(~TIM3_CCER1_CC1E);

  /* Disable timer3 */

  TIM3_Cmd(DISABLE);

#endif /* STM8S903 || STM8S103*/

  /* Compute LSI clock frequency */

  lsi_freq_hz = (8 * fmaster) / (ICValue2 - ICValue1);

  

  /* Disable the LSI measurement: LSI clock disconnected from timer Input Capture 1 */

  AWU->CSR &= (uint8_t)(~AWU_CSR_MSR);

 return (lsi_freq_hz);

}

/************************************************

函数名称 : AWU_Initializes

功    能 : AWU自动唤醒

参    数 : 无

返 回 值 : 无

作    者 : strongerHuang

*************************************************/

void AWU_Initializes(void)

{

  AWU_LSICalibrationConfig(AWU_LSIMeasurement());//校正LSI时钟

  AWU_Init(AWU_TIMEBASE_30S);                     //初始化AWU

  enableInterrupts();

}

进入停机模式前可以关闭不需要的电源等,修改单片机IO口等。


halt();                    //进入停机模式


中断发生后要清除标志位:  AWU_GetFlagStatus();


可以与窗口看门狗一起用,但不能与独立看门狗一起用。

关键字:STM8S  AWU  低功耗模式 引用地址:【STM8S】 AWU低功耗模式

上一篇:【STM8S】 独立看门狗
下一篇:瑞萨电子推出32位RX671 MCU,实现高性能和高能效

推荐阅读最新更新时间:2024-11-17 12:38

IAR FOR STM8S 错误 An error occurred while retrieving GDI features: gdi-error
今早使用IAR调试编译调试一个工程,发现IAR竟然出现如下错误信息 An error occurred while retrieving GDI features: gdi-error : Can't access configuration database 在网上查看了一下,也有人出现这个问题,总体来说可以通过重装IAR debugger-support-files这个,解决问题。
[单片机]
stm8s_atomthread
STM8S Atomthread 实时操作系统移植 介绍 1.嵌入式操作系统基本知识 嵌入性、专用性与计算机系统是嵌入式系统的基本元素;跟通用计算机系统(如windows、linux等)相比,嵌入式系统具备专用性强、可剪裁性好、实时性好和功耗低的特点。 实时操作系统满足条件: 必须是多任务(任务调度或调度器,最核心功能) 任务的切换时间与系统当前任务数无关(调度器对任务切换时间) 中断延时的时间可预知并尽可能短(任务实时性要求,即为CPU对任务响应速度) 目前,实时系统主要类型: 抢占式(剥夺式) 非抢占式(非剥夺式) 2.实时操作系统介绍:Atomthread Atomthread完全开源、轻量、便捷,针对于嵌入式操
[单片机]
stm8s_atomthread
STM8S存储器的读写操作
/* ********************************************************************************************************************************** * Name : STM8S存储器的读写操作 * Author : MingMing * Release : 2014/1/2 * Update : 2014/1/2 * E-mail : clint.wang@foxmail.com ******************************************************************
[单片机]
stm8s编译器查看代码量大小的软件
mapinfo v0.3 for cosmic map 功能介绍: 1. 对cosmic编译器生成的map文件进行分析,显示ram flash eeprom stack的占用量 ps:ram仅指ram变量(全局+静态+局部变量),不包括栈(stack) eeprom仅能统计由@eeprom定义出的变量或常量 更新说明: 1. 增加堆栈占用(stack)显示 2. 增加对自定义(未定义)段的显示,一起统计到unknown显示 使用方法如下: 1. 将附件压缩包中的mapinfo.exe解压并解压到stvd的\安装路径\STMicroelectronics\st_toolset\stvd中 2. 用stvd打开你的工程文
[单片机]
stm8s单片机内部定时器2使用
stm8s的中文手册里面写TIM2 16位向上计数是错误的。 stm8s定时易于使用,首先设定定时器的时钟频率,知道了定时器的时钟周期T,那么定时时间Tn就确定了,即 Tn = T * ARR(自动装载数据)。 程序如下: 1、单片机时钟设定: //fmaster=fcpu=2MHz CLK_ECKR=0x00; CLK_ICKR=0x01; CLK_CMSR=0xe1; CLK_SWR=0xe1; CLK_CKDIVR=0x18; 2、定时器TIM2初始化 //定时器2初始化fmaster/分频=2M/2=1M,1us计数一次,50us 中断一次 void TIM2_Init(void) { _a
[单片机]
STM8S利用STVP方式进行IO复用分析
1 说明 STM8S的IO复用用程序代码配置起来比较麻烦,一般是操作flash来操作opTIon byte字节,配置寄存器更加麻烦,可以使用STM 标准外设驱动库来设置。本文使用一种界面配置的方式来配置IO复用管脚,即使用STVP来配置。 因为FLASH保存的数据是掉电不丢失的,先用STVP把OpTIon Bytes擦写好后,再用STVD仿真器烧写程序就可实现IO复用了。 程序方式配置IO复用见这里 2 配置流程 【step1】打开STVP软件 【step2】打开我们需要下载的xxx.s19文件,CTRL+F5(File-》Ram Exec) 【step3】配置需要复用的引脚 IO口的复用功能主要配置在于AFR0-A
[单片机]
<font color='red'>STM8S</font>利用STVP方式进行IO复用分析
stvd+stm8s: #error cpstm8 sx1276.c:70(35) missing prototype
stvd 4.3.9编译stm8s工程报如下错误: Compiling sx1276.c... cxstm8 +modsl +debug -pxp -no +split -pp -l -istm8s_stdperiph_driverinc -i C:Program Files (x86)COSMICCXSTM8Hstm8 -i C:Program Files (x86)STMicroelectronicsst_toolsetinclude -clDebug -coDebug sx1276.c #error cpstm8 sx1276.c:70(35) missing prototype #error cpstm8 sx1276.
[单片机]
低功耗模式下微控制器时钟配置应用
在微控制器的低功耗应用中,对时钟的设置是很重要的一个方面。不同类型的微控制器在低功耗模式下对时钟的配置也各有不同。飞思卡尔公司推出的增强型8位微控制器HCS08系列具有很强的低功耗性能。其中,HCS08系列里的MC9S08QG8在同类产品的基础上对低功耗应用下的时钟又有了进一步的改进。 1 MC9S08QG8及其内部时钟模块介绍 微控制器MC9S08QG8是飞思卡尔公司新推出的一款8位增强型微控制器。它是小封装、低功耗的产品,但这并不意味着它是 低端 的产品;相反,它是一个高度集成的、功能丰富的、适用于各种应用的低价位单片机。MC9S08QG8采用高性能、低功耗的HCS08内核,具有很高的集成度,还包括更长的电池寿命(即使工
[单片机]
<font color='red'>低功耗</font><font color='red'>模式</font>下微控制器时钟配置应用

推荐帖子

LED显示屏为什么能够得到广泛使用,我的总结是以下几点:
  1、可延展性:LCD屏做的越大,生产线设备投入越高。而LED显示屏尺寸的增大是很容易的,就像搭积木一样。分辨率也方便根据用户需求实现。  2、全彩:灯泡,霓虹灯等都是单色的,LED实现了RGB三原色的组合。  3、可靠性高:LED是固体照明,可靠性高,不像霓虹灯管,灯泡之类的需要真空管的。  4、寿命长:LED芯片理论寿命可以达到10万小时,实际使用寿命在3万小时以上  5、环境友好:LED本身是节能无污染的产品。  LED目前遇到最大的问题是散热,显示屏也是一样。显示屏的功耗很大
探路者 LED专区
【SoC 6 BLE原型开发板】+GPIO使用篇
GPIO的使用是掌握硬件开发的一块敲门砖,为此先通过例程试探了一番编程的途径。在例程中有一个名为GPIO_Pins的例程,其作用是通过按键可以中断方式来控制LED的变化。经对原程序的适当调整,终于是板载的LED出现了反应。在上电后,只有红色的LED灯被点亮,见图1所示。图1点亮红色LED但按下用户键后,在释放时会出现绿色LED的闪亮,随后会恢复熄灭状态,见图2所示。这主要是因为,该用户键被边沿触发,所以才在按键释放的瞬间来促使绿色LED发生变化。
jinglixixi RF/无线
一个看似反相运算电路的正反馈运放电路
这几天在整理运放电路,发现自己忘得七七八八了。其中还因为记错了,惹出不少麻烦。比如,最基本的反相运放电路。看下图。左边是正常的负反馈反相运放电路,右边则是因为我无意记错,画出来的一个正反馈电路。一个看似反相运算电路的正反馈运放电路正常的反相电路没啥好说的,大家都懂。基本的分析要点,我自己就一直是这么算的,这种算法特快。虚断,虚短。所以,反相输入端电压其实是0,那么,输入和输出端其实就组成了一个简单的一个节点的KCL。于是乎就得出那个基本的公式,这里不提。
辛昕 模拟电子
【ST NUCLEO-U5A5ZJ-Q开发板测评】2、EXTI、PWM和串口的printf
串口printf输出Nucleo-U5A5的串口1和STlinkV3的串口相连,用以输出打印日志。在cubeMX中开启串口1,在工程中重定向,就可以使用printf了/*USERCODEBEGINIncludes*/#include"stdio.h"/*USERCODEENDIncludes*/#ifdef__GNUC__#definePUTCHAR_PROTOTYPEint__io_putchar(intch)#else#
chrisrh stm32/stm8
AM3358 PRU 用常量表方式如何实现对地址单元超过255地址(但没有偏移寄存器)的访问?
在AM3358中PRU介绍中,说是能用常量表方式访问ARM中的SPI等寄存器。常量寄存器C6,C16分别对应MCSPI0和MCSPI1的寄存器空间起始地址分别是:0x4803_0000和0x481A_0000。而MCSPI0和MCSPI1的绝大部分寄存器都在0x4803_0100和0x481A_0100后。而C6,C16由没有对应的CTBIR或者CTPPR与之关联。请教在用常量寄存器读写MCSPI0和MCSPI1中相对地址大于0x100的寄存器时,应该如何做?C语言和汇编语言的语
ken DSP 与 ARM 处理器
科威PLC芯片组开发实例(十一)
实战攻坚!本节,给大家讲解针对EASY-M0806R这款PLC的SCAN用户驱动子程序该完成的功能。通过前面的讲解,大家应该知道,SCAN是在梯形图完成一次扫描以后被系统调用的程序,在这个程序里面,我们需要更新输入输出口的状态以及LED的状态。SCANSCAN:LCALLUSER_SCAN_O;输出端口和LED更新LCALLUSER_SCAN_I;输入端口和LED更新RETUSER_SCAN_O:
断琴残风 单片机
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved