本帖最后由 奔牛滚滚 于 2013-1-14 13:09 编辑
使用stm8s的ch1输出方波,晶振为4Mhz,希望计数器的计数频率为1Mhz,产生方波的频率为100khz,占空比为50%,
如果使用向上计数模式,预分频寄存器 TIM1->PSCR = ? , 预装载寄存器 TIM1->ARR = ? ,比较输出寄存器 TIM1->CCR1 = ?
如果使用中央对齐模式,预分频寄存器 TIM1->PSCR = ? , 预装载寄存器 TIM1->ARR = ? ,比较输出寄存器 TIM1->CCR1 = ?
我计算的结果和实际输出差了几倍,很奇怪,于是改成下面的值
TIM1->PSCRH = 0 ;
TIM1->PSCRL = 7 ; /* 计数器频率 = 输入频率/(PSCR+1),这里等于7显然不对 */
TIM1->ARRH = 0 ;
TIM1->ARRL = 19 ; /* 向上计数模式,产生100khz方波,这里应该是20还是19,怎么不是9 ? */
TIM1->CCR1H = 0 ;
TIM1->CCR1L = 10 ;
TIM1->CR1 = TIM1_CR1_ARPE | TIM1_CR1_CEN;
启动外部的晶振代码如下:
CLK->SWR = CLK_SOURCE_HSE ;
CLK->SWCR |= CLK_SWCR_SWEN;
CLK->CKDIVR = 1; //2分频
|