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

2019-07-19 21:31发布

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,允许更新
                              // 设置控制器,启动定时器
}
时钟该怎么分频,怎么计算???

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
xuande
1楼-- · 2019-07-19 22:11
 精彩回答 2  元偷偷看……
qhwan_love
2楼-- · 2019-07-20 02:03
给你配了一下,你试试。

//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;           //计数器开
}

一周热门 更多>