STM8S105 TIM1 TIM2 定时器的定时时间初始化

发布者:月光男孩最新更新时间:2018-07-24 来源: eefocus关键字:STM8S105  TIM1  TIM2  定时器的  初始化 手机看文章 扫描二维码
随时随地手机看文章

很多刚接触STM8单片机的入门者不知到如何使用TIM1和TIM2的定时器作为定时功能。

下面介绍如下:

TIM1的初始化1us:

系统时钟是16M。

void set_TIM1_nus(u16 nus)
{
 /*1u的记数周期*/
 /*TIM1_TimeBaseInit(0x0F,TIM1_COUNTERMODE_UP,nus,TIM1_RCR_RESET_VALUE);*/
 /* Set the Autoreload value */
 TIM1->ARRH = (u8)(nus >> 8);
 TIM1->ARRL = (u8)(nus);

 /* Set the Prescaler value */
 TIM1->PSCRH = (u8)(0x0F >> 8);
 TIM1->PSCRL = (u8)(0x0F);

 /* Select the Counter Mode */
 TIM1->CR1 = (u8)(((TIM1->CR1) & (u8)(~(TIM1_CR1_CMS | TIM1_CR1_DIR))) | (u8)(TIM1_COUNTERMODE_UP));

 /* Set the Repetition Counter value */
 TIM1->RCR = TIM1_RCR_RESET_VALUE;
 
 /*打开1中断*/
 /*TIM1_ITConfig( TIM1_IT_UPDATE , ENABLE); */
 TIM1->IER |= (u8)TIM1_IT_UPDATE;
 
 /*计时器打开*/
 /*TIM1_Cmd(ENABLE); */
 TIM1->CR1 |= TIM1_CR1_CEN;

 /*TIM1_ClearFlag(TIM1_FLAG_UPDATE); */
   /* Clear the flags (rc_w0) clear this bit by writing 0. Writing ??has no effect*/
 TIM1->SR1 = (u8)(~(u8)(TIM1_FLAG_UPDATE));
 TIM1->SR2 = (u8)((u8)(~((u8)((u16)TIM1_FLAG_UPDATE >> 8))) & (u8)0x1E);

}

TIM2的初始化如下:

初始化为1ms

void time2_set_1ms(void)
{
 My_TIM2_TimeBaseInit(TIM2_PRESCALER_16,1000);

 My_TIM2_ITConfig( TIM2_IT_UPDATE , ENABLE); 
 
 My_TIM2_SetCounter(0x0000);
 
 /*计时器打开*/
 My_TIM2_Cmd(ENABLE); 
 My_TIM2_ClearFlag(TIM2_FLAG_UPDATE); 
}

中断处理部分,两者基本上都是一致的:

中断处理函数里面清除本次的中断就好了。其他功能自己定义。

TIMx_ClearFlag(TIM_FLAG_UPDATE);


关键字:STM8S105  TIM1  TIM2  定时器的  初始化 引用地址:STM8S105 TIM1 TIM2 定时器的定时时间初始化

上一篇:STM8学习总结三:TIM1定时器使用
下一篇:stm8 RTC自动唤醒

推荐阅读最新更新时间:2024-03-16 16:10

OK6410A 开发板 (八) 60 linux-5.11 OK6410A 异常相关初始化
arch/arm/kernel/head.S 77 ENTRY(stext) arch/arm/kernel/traps.c devicemaps_init void * vectors = early_alloc(PAGE_SIZE * 2); early_trap_init(vectors); vectors_base = vectors; vectors_page = vectors; // 填充 vectors - vectors+0x1000-1 vectors_base) = 0xe7fddef1; memcpy((void *)vectors, __vectors_star
[单片机]
关于STM32 一个TIM1 PWM程序和PWM简单使用
高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定时器。共有4个通道有 死区有互补。 先是配置IO脚: GPIO_InitTypeDef GPIO_InitStructure; /* PA8设置为功能脚(PWM) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /*P
[单片机]
关于STM32<font color='red'>的</font> 一个<font color='red'>TIM1</font> <font color='red'>的</font>PWM程序和PWM简单使用
单片机常用功能模块使用 Part4. 定时器
51 单片机编程经常要求对时间进行某种操作,比如数码管的动态扫描显示、延时等等 对于定时或延时,一般有三种方法实现: ①、软件定时:如常用的延时程序 Delay(),在定时过程中,CPU 循环测试延时变量是否满足条件,此时 CPU 利用率低下; ②、硬件定时:如外部芯片555 时基电路,通过外部阻容,达到一定的延时功能,改变阻容大小可以改变延时长度,这种定时器取决于硬件,设定好以后不能通过软件更改; ③、定时器:利用单片机内部定时器,实现对时间的操作。 1、定时器功能: (1)、定时:产生一个标准的时间间隔:如 20 ms,100 ms 等,单片机使用这种方式可以产生一个符合某一要求的脉冲方波; (2)、计数:对外部的
[单片机]
单片机常用功能模块<font color='red'>的</font>使用 Part4. <font color='red'>定时器</font>
STM32F107VCT6通用定时器配置
将TIM2的周期配置成0.2ms。 定时器周期公式:(1+TIM_Prescaler )/72M)*(1+TIM_Period ) #define NVIC_Priority_Timer2 1 unsigned int Period_TIM2 = 14400; void TIM2_Init_Config(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); NVIC_InitStru
[单片机]
CubeMX Stm32F407 生成一定周期占空比不同方波 DMA + 定时器
先上图 如图 是我生成的一个波形 这个波形的占空比在连续的四个周期内分别是10%,20%,30%,40%, 并且按照这个顺序循环这里大致介绍一下实现的方式。 使用的软件是Cubemx(库函肯定也可以实现) 第一步是器件选型 这一部分不做介绍 用的是Stm32F407 第二是时钟配置 接下来是定时器配置 第三步就是生成代码了 这里 需要在生成的代码里面加上一行开始的代码。
[单片机]
CubeMX Stm32F407 生成一定周期<font color='red'>的</font>占空比不同<font color='red'>的</font>方波 DMA + <font color='red'>定时器</font>
STM32F103X 通用定时器2~5 输入捕获边沿选择
在官方V3.5库帮助文档中提到有上升沿、下降沿、双边沿出发选择。如图1。 但是在手册中看到寄存器的那个位【3:2】为保留,故将双边沿的数据写入这个保留的寄存器中其实和设置为下降沿效果是相同的。如图2。 故在测量譬如脉冲频率、占空比时只能:1.在中断中不断改变触发边沿 或者 2.连接到定时器的两个通道 或者 3.连接同一个通道,但是将同一通道的信号输出给2路IC(这很像PWM输入模式)。如图3。 图一 图二 图三
[单片机]
STM32F103X 通用<font color='red'>定时器</font>2~5 <font color='red'>的</font>输入捕获边沿选择
STM32定时器几种输出模式
1 背景 最近有接触到通过可控硅的方式来控制交流风机或者电烙铁功率,STM32的定时器输出比较模式,刚好可以满足这种需求,借此机会总结一下定时器的几种输出模式。 2 STM32的定时器比较输出 STM32的定时器比较输出一共有8种,记录一下初始化方法和逻辑分析仪的波形。 在官网搜索对应的型号找到用户手册,比如STM32F103ZET6 找到比较模式相关配置的描述 TIMx capture/compare mode register 1 (TIMx_CCMR1) Address offset: 0x18 Reset value: 0x0000 The channels can be used in input (capture
[单片机]
STM32<font color='red'>定时器</font><font color='red'>的</font>几种输出模式
基于555定时器D类耳机驱动器可作为理想实用放大器
  广受欢迎的555定时器可用作乐器或其他应用的PWM/D类放大器。其可在4.5V~16V的电源电压范围内工作,并可输出200mA的驱动电流。音频信号被传送至555定时器的CV( 控制电压)引脚。   本设计实例为耳机和音频线路提供两个简单、便宜的驱动器,分别如图1、图2所示。这两个驱动器针对电吉他和小提琴设计,但也可适用于更多其他应用。对于这样的简单应用而言,噪声和总谐波失真(THD)并不是重点考虑因素,因此并未对这两个数值进行测量。      图1:含运算放大器和NE555定时器的耳机和音频线路驱动器。也可以使用CMOS版本(如LMC555),但输出电流较低。其优点为工作频率较高。   下述为一些设计考
[电源管理]
基于555<font color='red'>定时器</font><font color='red'>的</font>D类耳机驱动器可作为理想<font color='red'>的</font>实用放大器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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