初级会员

- 积分
- 160
- 金钱
- 160
- 注册时间
- 2016-6-3
- 在线时间
- 42 小时
|
2金钱
void TIM3_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM3 , TIM_IT_Update) != RESET )
{
adcx= ADC_GetConversionValue(ADC1);
adcy=(2.56*adcx/0x0fff-1.25)*150;
///½«½Ç¶èóë WM2¨μÄ1ØÏμÔú′˼ÆËã3ö
TIM_ClearITPendingBit(TIM3 , TIM_FLAG_Update);
}
}
void Set_PWM()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseStructure.TIM_Period = 999; //μ±¶¨ê±Æ÷′ó0¼Æêyμ½999£¬¼′Îa1000′Σ¬Îaò»¸ö¶¨ê±ÖüÆú
TIM_TimeBaseStructure.TIM_Prescaler =72; //éèÖÃÔ¤·ÖÆμ£o2»Ô¤·ÖÆμ£¬¼′Îa72MHz
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ; //éèÖÃê±Öó·ÖÆμÏμêy£o2»·ÖÆμ(ÕaàïóÃ2»μ½)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //ÏòéϼÆêyÄ£ê½
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
/* PWM1 Mode configuration: Channel1 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //ÅäÖÃÎaPWMÄ£ê½1
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 500; //éèÖÃìø±äÖμ£¬μ±¼ÆêyÆ÷¼Æêyμ½Õa¸öÖμê±£¬μçÆ½·¢éúìø±ä
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //μ±¶¨ê±Æ÷¼ÆêyÖμD¡óúCCR1_Valê±Îa¸ßμçÆ½
TIM_OC1Init(TIM2, &TIM_OCInitStructure); //ê1Äüí¨μà1
TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM2, ENABLE); // ê1ÄüTIM3ÖØÔØ¼Ä′æÆ÷ARR
/* TIM3 enable counter */
TIM_Cmd(TIM2, ENABLE); //ê1Äü¶¨ê±Æ÷3
}
TIM3用作定时用的,TIM2用来产生PWM波,但是将Set_PWM()放在while循环外面正常,放在while循环里面就不正常了,求大神告知
|
|