你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 5540|回复: 1

【ST公益分享】STM8-16位定时器中断

[复制链接]

10

主题

10

回帖

0

蝴蝶豆

新手上路

最后登录
2019-8-1
发表于 2011-3-23 23:51:41 | 显示全部楼层 |阅读模式
在STM8中,除了有8位的定时器外,还有16位的定时器。今天进行的实验就是针对16位定时器2来进行的。除了计数单元为16位的,其它设置与前面8位的定时器基本一样。下面的程序也是采样中断方式,由定时器2的中断服务程序来驱动LED的闪烁。
具体的程序代码如下,其它注意点见上一篇,另外要注意别忘了修改相应的中断向量。
 
//  程序描述:通过初始化定时器2,以中断方式驱动LED闪烁
//            LED接在MCU的GPIO的PD3上
 
#include "STM8S207C_S.h"
 
main()
{
  // 首先初始化GPIO
  PD_DDR = 0x08;
  PD_CR1 = 0x08;              // 将PD3设置成推挽输出
  PD_CR2 = 0x00;
 
  // 然后初始化定时器4                              
  TIM2_IER = 0x00;            // 禁止中断
  TIM2_EGR = 0x01;            // 允许产生更新事件
  TIM2_PSCR = 0x01;           // 计数器时钟=主时钟/128=2MHZ/2
                                                            // 相当于计数器周期为1uS
                                                                                                                                                       // 设定重装载时的寄存器值
                                                                                                                                                       // 注意必须保证先写入高8位,再写入低8位
              TIM2_ARRH = 0xEA;           // 设定重装载时的寄存器的高8位
  TIM2_ARRL = 0x60; 
 
  TIM2_CNTRH = 0xEA;          // 设定计数器的初值
  TIM2_CNTRL = 0x60;            
                              // 定时周期=1*60000=60000uS=60ms
                             
  TIM2_CR1 = 0x01;            // b0 = 1,允许计数器工作
                              // b1 = 0,允许更新
                              // 设置控制器,启动定时器
  TIM2_IER = 0x01;            // 允许更新中断
  _asm("rim");                // 允许CPU全局中断
 
  while(1)                    // 进入无限循环
  {
  }                             
}
 
// 函数功能:定时器4的更新中断服务程序
// 输入参数:无
// 输出参数:无
// 返 回 值:无
@far @interrupt void TIM2_UPD_IRQHandler (void)
{
    TIM2_SR1 = 0x00;          // 清除更新标志
    PD_ODR = PD_ODR ^ 0x08;   // LED驱动信号取反
                              //LED闪烁频率=2MHZ/2/60000/2=8.3
}                                         
 
 
<
回复

使用道具 举报

91

主题

4603

回帖

4

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2017-7-3 11:33:58 | 显示全部楼层
有没有实验过?
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版