zjq081 发表于 2013-3-8 13:22:36

STM8的定时器T1驱动时钟问题

STM8的定时器T1的默认驱动时钟是否为内部高速晶振HSI?
我将系统时钟设置为外部时钟,修改系统时钟分频系数,定时器T1的定时时间不改变,求解释!!!

liu_shu 发表于 2013-3-8 13:32:35

默认是内部16M分频8分频,修改成外部时钟校验正确没?

zjq081 发表于 2013-3-8 13:40:20

liu_shu 发表于 2013-3-8 13:32 static/image/common/back.gif
默认是内部16M分频8分频,修改成外部时钟校验正确没?

/* Configure clock prescaler */
    CLK_CKDIVR = 0x00;          /*分频时钟源*/
    /* To select external source by automtic switch */
    CLK_SWCR |= 0x02;            /* 使能转化 */
    CLK_SWR   = 0xB4;            /* 时钟源选择 选择HSE*/
               
    while (!(CLK_SWCR & 0x08));/* 等待直到转换完成 */
               
               
    if (CLK_CMSR != 0xB4)      //检测是不是配置的时钟源
       while(1);
/*以上是配置时钟源只是单单的选择时钟源 */

//CLK_CSSR |= 0x01; //这句才是本历程的关键 使能时钟安全机制因为它检测的只是外部时钟所以才有上面配置时钟源的程序,因为默认情况下是HSI/8

zjq081 发表于 2013-3-8 13:41:52

zjq081 发表于 2013-3-8 13:40 static/image/common/back.gif
/* Configure clock prescaler */
    CLK_CKDIVR = 0x00;          /*分频时钟源*/
    /* To selec ...

引用贴子重新开贴 3合一学习之 stm8系列学习讲解
http://www.amobbs.com/forum.php?mod=viewthread&tid=3421507&highlight=STM8

zjq081 发表于 2013-3-8 15:17:45

整明白了,定时器的驱动时钟可以选择内部时钟或者外部时钟,其分频数不受CPU的分频系数影响。
也就说,当选择内部时钟16MHz的时候,CPU的分频数为4,CPU时钟为4MHz,定时器驱动时钟为16MHz,设定定时器分频系数为4的话,则定时器的定时频率也为4MHz,而不是CPU的时钟频率4MHz在除4之后的1MHz。
页: [1]
查看完整版本: STM8的定时器T1驱动时钟问题