STM8S之TIM4自学笔记

发布者:ShimmeringMoon最新更新时间:2021-10-19 来源: eefocus关键字:STM8S  TIM4  通用定时器 手机看文章 扫描二维码
随时随地手机看文章

TIM4是STM8S系列单片机中的8位基本型通用定时器

TIM4相关寄存器

控制寄存器1(TIM4_CR1)

中断使能寄存器(TIM4_IER)

状态寄存器(TIM4_SR)

事件产生寄存器(TIM4_EGR)

计数器(TIM4_CNTR)

预分频寄存器(TIM4_PSCR)

自动重装载寄存器(TIM4_ARR)


TIM4初始化

1、设置预分频寄存器

2、设置自动重装载寄存器

3、开定时器更新中断

4、开总中断 asm("rim"); IAR中开总中断

5、计数器工作


void TIM4_Init()
{
  TIM4_PSCR=0X03;// 预分频2MHz/2^3=250KHz
  TIM4_IER=0X01;//开定时器中断
  TIM4_ARR=250;//自动重装载值
 TIM4_CNTR=250;//计数初值,以便一开始就产生一次溢出产生更新事件,启用预分频器的值

}

 

中断程序

#pragma vector=0x19
__interrupt void TIM4_UPD_OVF_IRQHandler(void)
{
  num++;
  TIM4_SR=0X00;
  if(num==1000)//定时1s
  {
   PG_ODR^=0Xff;
    num=0;
 
  }
 
 }


关键字:STM8S  TIM4  通用定时器 引用地址:STM8S之TIM4自学笔记

上一篇:STM8S之TIM1自学笔记1
下一篇:以STM8为例的CAN滤波器内容

推荐阅读最新更新时间:2024-11-10 10:24

STM8S之内外部16M晶振
简介 本文介绍STM8S系列如何分别实现内外部的16M晶振的使用。 实验平台 编译软件:IAR for STM8 1.42.2 硬件平台:stm8s003f3p6开发板 仿真器:ST-LINK 库函数版本:STM8Sx_AN3298_FW_V4.0.0 基础知识 1、STM8默认使用多少时钟频率? 答:默认使用的是内部16M晶振,并且是8分频,也就是2M的时钟频率。 2、内外部16M晶振有什么区别? 答:stm8内部已有16M晶振,但无法精确定时,如控制步进电机这类需要精确时间的项目,需要使用外部16M晶振。 如果是直流电机这类不需要精确时间的项目,只使用内部16M晶振即可。 六、内部16M晶振的使用步骤 1、初
[单片机]
通用定时器(中断功能和PWM输出)
目录: 1:概述 2:常用中断功能 3:PWM输出 1:概述 在开发中,定时器的应用很广泛,简单总结为三个方面: 1.1:中断功能的应用,常用的是利用定时器中断,实现定时、记时、延时、超时判断,前面博文中有总结过内核定时器的各种使用的方法; 1.2:比较输出,常用应用就是PWM输出,用脉宽调制来实现led、电机等的控制; 1.3:输入捕获,可以抓取输入的方波信号,统计波形周期和占空比,最常见利用就是门控,将外部模拟量转化为数字量(定时器的计数值); 2:常用中断功能 定时器的初始化详细参考手册,主要的一点是确定定时器的溢出周期,利用公式:Tout = (arr+1)*(psc+1)/Tclk,可计算出定时器的溢出频率; 如
[单片机]
STM8S---TIM2产生PWM与TIM1定时器周期中断的时钟问题
1 问题   在下面的测试程序中,如果将Init_CLK()函数中的 CLK_CKDIVR |= 0x08;去掉’|‘,则TIM1的功能实现跟预设定相同(10ms中断一次),但是TIM2的PWM频率就变高了;如果加上,则TIM2的功能实现跟预设定相同(产生1Hz的PWM),但是TIM1的周期就变长了;   尝试了很多测试,均无效(买的开发板和另一块gs自画板测试也都一样)。 2 尝试   因为STM8S默认使用内部16M高速RC振荡器,且8分频,则系统启动主时钟为2M。即CLK_CKDIVR = 0X18;,如果再去赋值CLK_CKDIVR |= 0X08; 则主时钟还是不变即0X18,但是如果赋值为CLK_CKDIVR = 0
[单片机]
使用 stvd 编译STM8S 时能看到使用RAM ROM大小的方法
刚刚安装的STVD编译器,编译时候不显示用了多少RAM和ROM?对于此问题,有两个方法:一是看.map文件 另一种是 增加一个补丁,具体操作如下,可以在我的资源里下载相应的文件。 http://download.csdn.net/detail/chuangwu2009/7350127 网上找到的: 1. 将附件压缩包中的mapinfo.exe解压到stvd的安装路径STMicroelectronicsst_toolsetstvd中; 2. 用stvd打开你的工程文件,在工程上点右键选settings... 3. 右侧的选项卡选择Linker,将category的下拉框选成output,然后在Generate Map fil
[单片机]
STM8S的GPIO主要功能以及操作方法解析
STM8S的GPIO主要功能: ● 端口的各个位可以被单独配置 ● 可选择的输入模式:浮动输入和带上拉输入 ● 可选择的输出模式:推挽式输出和开漏输出 ● 数据输入和输出采用独立的寄存器 ● 外部中断可以单独使能和关闭 ● 输出摆率控制用以减少EMC噪声 ● 片上外设的I/O功能复用 ● 当作为模拟输入时可以关闭输入施密特触发器来降低功耗 ● 在数据输出锁存时支持读-修改-写 ● 输入兼容 5V电压 ● I/O口工作电压范围为1.6 V 到V DDIOmax 每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的
[单片机]
<font color='red'>STM8S</font>的GPIO主要功能以及操作方法解析
STM8S蜂鸣器的应用
前段时间都是自己裸机(自己写寄存器)编的程序,以前接触过STM32知道有STM公司有固件函数库,可以使用固件函数库来操作,在使用库文件中最头疼的问题就是H文件的调用,所以一直没有使用,一时心血来潮决定在STM8S中试试,在网上参考了一下,找到官网上的固件函数库,添加头文件,对工程进行一些列的配置,还好好使了。呵呵! #include stm8s.h #include stm8s_beep.h #include stm8s_flash.h #include stm8s_clk.h #include stm8s_gpio.h #define BEEP_PORT GPIOD #define BEEP_PIN G
[单片机]
STM8S读写内部EEPROM
1初始化函数 void InitEEPROM(void) { FLASH_DeInit(); FLASH_Unlock(FLASH_MEMTYPE_DATA);//EEPROM FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_TPROG); } 2.读一个字节的函数实现 /******************************************************************************* * 名称: INT8U FlashEeprom_ReadByte(INT16U Address)
[单片机]
stvd+stm8s: ERROR:before starting debug session, please, select a target
STVD在仿真调试stm8s时报错如下错误: 问题原因:STVD没有设置调试用仿真器 解决方法:点击STVD菜单栏选择 Debug instrument - Target Settings... ,选择“Swim ST-Link” 进行上述设置后,仍然报如下错误: 问题原因:安装ST TOOLSET 的时候,DAO-3.5 的文件并没有被正确安装。 解决方法:进入ST TOOLSET 的安装文件夹,比如D:Program Files(x86)STMicroelectronicsst_toolsetstvddao。 运行在此文件夹下的ST Toolset.msi,先卸载已安装的,再重新安装即可解决问题。
[单片机]
stvd+stm8s: ERROR:before starting debug session, please, select a target

推荐帖子

windows ddk driverstudio 摄像机驱动开发
不知道怎么做,大家熟悉的给点意见,有啥资料也共享下,谢谢!windowsddkdriverstudio摄像机驱动开发介绍一下背景吧,比如以前做什么,对哪些语言比较熟悉。ddk中的例子testcap或者AVshow。后面那个好像是这个名字参看DDK的例子,或者去买本书我是用Driverstudio3.2+DDk开发,我想请教下大家,是不是用driverstudio什么获取设备描述符这些东西,我不要管呢,是driverstudio自己已经封装好了吗,就是说我不要再进行
holly8301 嵌入式系统
参与DIY应急灯项目名单【暂定】
坛子里有朋友提议,说需要确定参与DIY应急灯项目名单,这样也好进行下一步原理图设计和布线工作。这次活动报名的人数是27人,咱们活动提供的配件是20套,应急灯外壳有25套。仅仅从报名方案中,还没法确定具体谁的方案更合适,主要是考虑到报名时间与出方案时间间隔一段时间,有些朋友可能提交了申请,但是在出原理图的时候又忙起来,没时间参与,所以最终提供套件还是以原理图和PCB图提交为准。请大家抓紧时间提交原理图和PCB,我们会将大家的方案请Maxim工程师帮忙选择。目前,我们将所有提交
EEWORLD社区 DIY/开源硬件专区
菜鸟求救VS2008开发PDA程序数据库问题
我做的是一个简单的PDA信息管理程序,我装了完整版的VS2008,加上SQL2005,然后通过添加直接加了个数据库,我访问的时候直接写的conStr=@DataSource=\\db\\test.sdf;部署说我数据库有问题,我想请问一下该把数据库放哪里,还有就是我的环境有没有搭错,我临时用的VS2008自带的模拟器,在网上看到有人说还要装一个什么小数据库,求高手指点一下,不胜感激菜鸟求救VS2008开发PDA程序数据库问题将数据库文件同步到模拟器中,在模拟器上运行的程序不能访问
coffeewkf 嵌入式系统
刚到的MSP430FR5994 有意外惊喜
哈哈,终于收到最新的MSP430FR5994,这款芯片可是很不错,非常感谢论坛组织这个活动,先给大家来个开箱照,后面有惊喜。大家从图片看到了吗?竟然板子带了一张SD,而且是8G的闪迪SD卡,太意外了,还是第一次遇到板子附送SD卡,就这张SD就值不少钱,大家赶紧行动吧刚到的MSP430FR5994有意外惊喜没错,就是快递员给你加上的。:) 不是的,原装的,都是封死的活动还在继续,其他朋友还有机会哦:https://bbs.eeworld.com.cn/thread-
qwerghf 微控制器 MCU
超小型 CSP 声表滤波器
法国泰迈思(Temex)股份有限公司在2003年的法国戛纳3GM展览会上发布了一款超小型射频声表滤波器。这款产品使用了贴片封装技术,用以满足客户对产品小型化且高性能的需求,适用于新一代的手机产品。Temex公司本次推出的新型射频声表滤波器支持以下标准:GSM850/900/1800/1900、CDMA450、CDMA2000、PCS、W-CDMA、GPS、802-11b/g和Bluetooth等。由于使用了创新的贴片封装技术,该产品封装尺寸为2.0X1.4X0.82mm。同时,该
fighting 模拟电子
C中如何直接直接嵌入汇编的方法
在学单片机...看到这个...感觉不错.发来和大家共享下...C中如何直接直接嵌入汇编的方法!(C51BBS网友cuiwei)原创//asm.h#ifdefASMunsignedlongshiftR1(registerunsignedlong);#elseexternunsignedlongshiftR1(registerunsignedlong);#endif//endofasm.h//asm.c#defineA
wangda 单片机
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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