单片机型号为STM8S103F3P3,编译环境为STVP+cosmic。
出现问题的语句是,
#define PWM_ARR 20000
unsigned long duty= 0;
TIM1_CCR3H = ((duty*PWM_ARR/100)>>8)&0xff;
TIM1_CCR3L = (duty*PWM_ARR/100)&0xff;
上面duty变量是PWM输出占空比,然后宏PWM_ARR是为了方便改变PWM输出的频率。
通过改变duty的值输出不同的占空比。
问题出现在一次调试时我想让CC3固定输出100%的占空比,所以就把duty直接幅值为100.
即TIM1_CCR3H = ((100*PWM_ARR/100)>>8)&0xff;
TIM1_CCR3L = (100*PWM_ARR/100)&0xff;
结果发现TIM1_CCR3H 和TIM1_CCR3L的值完全不对了
请问大家这是什么原因呢? |