本帖最后由 coreduo 于 2011-5-16 20:28 编辑
#include "stm32f10x.h"
static __inline TIM_TypeDef* tim_get_base(int ch)
{
return (TIM_TypeDef*)(TIM2_BASE + (ch-2)*0x400);
}
void timer_gen_clock(int ch, int div)
{
TIM_TypeDef* tim = tim_get_base(ch);
tim->CCR1 = 0;
tim->ARR = div/2 - 1;
tim->CR1 = TIM_CR1_ARPE | TIM_CR1_DIR | TIM_CR1_CEN;
tim->SMCR = TIM_SMCR_ECE | TIM_SMCR_TS;
tim->CCMR1 = TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_1;
tim->CCER = TIM_CCER_CC1E;
}
写了一个计数器做分频器的简单函数,可以正常使用。
使用ETR输入,CH1输出。使用output compare模式。
但是用示波器看,输出的波形不稳
具体情况是输出的波形上升沿是稳定的,但是下降沿在示波器里看来是重影的。
想不通啊。。。 |