历史上的今天

今天是:2024年11月07日(星期四)

正在发生

2019年11月07日 | STM8S AWU低功耗模式

发布者:rockstar7 来源: 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 FLASH与EEPROM读写操作
下一篇:STM8S103K3 I2C

推荐阅读

致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,第三届“大联大创新设计大赛”(WPG i-Design Contest)选出25支海峡两岸团队晋级最终决赛。他们分别来自厦门大学、山东理工大学、南通大学、台湾云林科技大学、台北科技大学等。经过超过半年的过关斩将,他们新颖的设计作品更是让评委眼前为之一亮,相信会在决赛当日给观众带来独具一格...
下面是其中一个单片机源程序如下:/* * File: newmain.c* Author: YF006** Created on 2018年7月11日, 上午8:20*/#include "hardware.h" // CONFIG#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)#pragma...
#include <stm32f10x_lib.h> #include "usbreg.h" #include "usbcore.h" #include "usbuser.h" #include "usbcfg.h" #include "usb.h" #include "usb_hw.h" #include "usbdesc.h" #include "hid.h" #include "hiduser.h" #define _DEBUG_ #include "debug.h" #pragma diag_suppress 111,1441 //用来指示USB设备的状态 ...
摆脱芯片供应短缺问题 双芯片代工策略见效 11月4日,高通股价飙涨逾12%,相较同业,高通在面对芯片更显得心应手,并看好明年业绩将持续成长。 高通执行长 Crisano Amon 于电话会议上表示,预计12月底供应问题将明显好转,明年下半年将有足够的供应满足需求,预期 2022财年EPS有望年增20%。 Lily点评:芯片短缺一直影响5G手机的出货量。高通作为全...

史海拾趣

问答坊 | AI 解惑

请教,2个单片机是否能安全的访问同一个FM24C02!

请教,2个单片机是否能安全的访问同一个FM24C02! 2个单片机分别处理各自的事务,需要交换10字节左右数据建立联系 设想通过同一个FM24C02来实现,是否可能,电路要尽可能简单!谢谢!…

查看全部问答∨

偶发个帖子-系统定义

在设计电路,特别是模拟采集和输出的时候,或者是电源设计,在评估性能前,至少有两点意识:    1.系统定义     包括模拟采集中的精度要求,环境温度要求等。电源中的电流输出能力和散热评估。    2.最大能力和保 ...…

查看全部问答∨

altium designer 09使用指南

无意中在网上找了一份关于altium designer09 使用指南,里面内容写了非常不错。供大家参考下。喜欢的朋友支持下。…

查看全部问答∨

nand flash 中的bbt问题

在nand flash中是怎么进行坏块(bad block )管理的呢?我看的代码注释说最后的127 blocks放的是relocation tables,而代码上看到的却是最后放的bbt.这两个有什么关系呢?请大家帮忙!!…

查看全部问答∨

UC3842输出电压不能带载,求指点~~

输出电压24V 5A,且可调节。   带上负载后,电压迅速降至13V,且不能调节。   请大侠指点一下   …

查看全部问答∨

zigbee串口中断法中是如果发送数据的?

串口写和读函数都是从缓冲区中读取数据。在中断模式下以中断的方式实现接收和发送缓冲区与UXDBUF间的数据传送。对于接收数据,此中断可以由接收到的第一个字节触发接收中断,但是对于发送数据,这第一个中断应该由什么触发呢?应该是发送完一个字节 ...…

查看全部问答∨

用ADS8332, 你想做个啥?

团购了ADS8332的网友,肯定已经知道其性能的优越了。把它用在什么地方会能发挥它的优势呢?   1、做个电压表?        精度还是可以, --          速度埋没 ...…

查看全部问答∨

开关电源接通时出现的尖峰波问题

请教大家一个问题,如何解决开关电源接通时出现的尖峰波?非常感谢…

查看全部问答∨

世健公司提供ADI汽车传感器和传感器接口解决方案

应用描述 为了符合新出台的法规要求,提高燃油经济性和减少排放,汽车必须更加环保。只有通过改进传统内燃机效率,才能满足这些要求,这一目标要通过改进燃烧传感和控制性能付诸实现,因而需要更高的传感器和信号调理精度和集成度。车辆中通常有超 ...…

查看全部问答∨

(转)程序员:伤不起的三十岁

程序员干到30岁,好不容易从码奴混到了白领,却再也干不动了,还时时面临失业的危险。30岁,是一个程序员伤不起的年龄。明天,何去何从?tech2ipo专门为为此现状做出了分析。 一、30岁现象 在官场上,曾经有一个59岁现象,就是官员们会在59岁时, ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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