本帖最后由 明月小厨 于 2012-12-10 11:14 编辑
/*TIM3第2通道(PD0),控制LED灯亮度;*/
/*自动进行*/
/*和IO端口对应的寄存器好象不需要设置,以TIM的设置为准*/
void T3_PWM_CH2_init(unsigned char t)
{
//任务A:设PWM周期;
TIM3_PSCR = 0x00;//预分频器;主频HSI = 16MHZ,产生(1/16)uS的基准;
TIM3_IER = 0; //中断使能寄存器;不允许中断
TIM3_ARRH = 0x10; //自动装载寄存器;16*256/16 = 256uS;周期是256uS;
TIM3_ARRL = 0;
//任务B:设PWM的模式,有效电平定义并接至外部引脚;
//CC2为比较输出,PWM2模式;(CNT>CCR时为有效电平:低:亮灯)
TIM3_CCMR2 = 0x70; //H2通道的比较模式寄存器
TIM3_CCER1 = 0x30; //比较使能寄存器;OC2有效时低电平,OC2输出到引脚;
//任务C:占空比和ARR及CRR2有直接关系;
TIM3_CCR2H = t; //和ARR对应,影响占空比,不能超过ARRH;
TIM3_CCR2L = 0;
//任务D:清理战场并点火启动;
TIM3_EGR=0X01;//事件产生寄存器;产生一次更新事件,计数器分频器归零;
TIM3_SR1=0;//状态寄存器
TIM3_SR2=0;//状态寄存器
TIM3_CR1 = 0X81;//各项参数初始化完毕,开启TIM3
}
|