初级会员

- 积分
- 168
- 金钱
- 168
- 注册时间
- 2016-5-20
- 在线时间
- 25 小时
|
#include "timer.h"
#include "led.h"
#include "adc.h"
#include "pid.h"
u16 Input,Setpoint=20;
void TIM2_IRQHandler(void)
{
if(TIM2->SR&0X0001)
{
Input=Get_Adc_Average(ADC_CH4,1)*(3300.0/4096);
TIM4->CCR2=PID_Calc(Setpoint,Input);
LED1=~LED1;
}
TIM2->SR&=~(1<<0);
}
void TIM2_PWM_Init(u32 arr,u32 psc)
{
RCC->APB1ENR|=1<<0;
RCC->AHB1ENR|=1<<0;
GPIO_Set(GPIOA,PIN1,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);
GPIO_AF_Set(GPIOA,1,1); //PA1,AF1;
TIM2->ARR=arr;
TIM2->PSC=psc;
TIM2->DIER|=1<<0;
TIM2->CCMR1|=7<<12;
TIM2->CCMR1|=1<<11;
TIM2->CCER|=1<<4;
TIM2->CCER|=1<<5;
TIM2->CR2|=2<<4;
TIM2->CR1|=1<<5;
TIM2->CR1|=1<<7;
TIM2->CR1|=1<<0;
TIM2->CCR2=10;
MY_NVIC_Init(1,3,TIM2_IRQn,2);
}
为什么这样子不行啊,我是新手,原子哥求助啊!
|
|