OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3199|回复: 2

stm8s的定时器1用作定时器时怎么设置定时8ms???

[复制链接]

12

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2015-4-11
在线时间
12 小时
发表于 2016-1-18 20:00:08 | 显示全部楼层 |阅读模式
1金钱
void Init_Time1(void)
{                                                                               
  TIM1->IER = 0x00;            // 禁止中断
  TIM1->EGR = 0x01;            // 允许产生更新事件
       
  TIM1->PSCRH = 0;      
        TIM1->PSCRL = 1;                                //(fCK_CNT)等于fCK_PSC/( PSCR[15:0]+1)
       
        TIM1->ARRH = 0x7F;
  TIM1->ARRL = 0xFF;
       
  TIM1->CNTRH = 0x7F;          // 设定计数器的初值
        TIM1->CNTRL = 0xFF;
       
  TIM1->CR1 = 0x01;            // b0 = 1,允许计数器工作
                              // b1 = 0,允许更新
                              // 设置控制器,启动定时器
}
时钟该怎么分频,怎么计算???

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6275

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11272
金钱
11272
注册时间
2014-4-1
在线时间
1250 小时
发表于 2016-1-18 20:51:41 | 显示全部楼层

仔细查 PSCRH、PSCRL 和 ARRH、ARRL 的功能。

回复

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2016-1-2
在线时间
13 小时
发表于 2016-1-18 21:38:32 | 显示全部楼层
给你配了一下,你试试。

//Initializes the TIM1(8MS定时)
void TIM1_Init(void)
{
        TIM1_PSCRH = 0x00;        //定时器时钟源16M/(15+1)=1M
        TIM1_PSCRL = 0x0f;        
        TIM1_ARRH = 0x1f;         //8ms中断一次
        TIM1_ARRL = 0x40;
        TIM1_IER = 0x01;                  //更新中断
        TIM1_CR1 = 0x01;           //计数器开
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-7-1 09:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表