STM8的定时器时间把握不了

2019-03-23 20:29发布

#include<iostm8s105c6.h>
unsigned int t=0,tm=0;

void main()
{
  
PC_DDR_DDR3=1;
PC_CR1_C13=1;
PC_CR2_C23=0;

PC_ODR_ODR3=1;//接电机继电器,启动
 
 TIM2_IER=0X00;//关中断
 TIM2_EGR=0X01;//开更新
 TIM2_PSCR=0x01;//分频  现在是1us
 TIM2_ARRH=0Xc3;//50000
 TIM2_ARRL=0X50;
 TIM2_CNTRH=0Xc3;
 TIM2_CNTRL=0X50;//t=50000*1us=50ms
  TIM2_CR1=0X01;//启动定时器
 TIM2_IER=0X01;//开更新中断
 asm("rim");//开全局
 
 while(1);
  
}

#pragma vector=TIM2_OVR_UIF_vector
__interrupt void TIM2_OVR_UIF(void)
{

  t++;
  
  
  if(t==10000)
  {
    t=0;
    tm++;
    PC_ODR_ODR3=0;//关电机
                  //按我理解这里应该是50*10000=500s停的 可是就只有一秒的感觉
  }

} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
lckj686
1楼-- · 2019-03-24 03:15
/ 先给自己顶下&nbsp; 希望有人回答
astwyg
2楼-- · 2019-03-24 09:06
没用过8  不知道和32一样不一样.就不说了 等高人吧

一周热门 更多>