OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2953|回复: 1

TIM2可以一边输出PWM,一边执行中断服务函数吗

[复制链接]

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2016-5-20
在线时间
25 小时
发表于 2016-7-24 12:59:15 | 显示全部楼层 |阅读模式
#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);       
}


为什么这样子不行啊,我是新手,原子哥求助啊!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2016-5-20
在线时间
25 小时
 楼主| 发表于 2016-7-24 13:01:17 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 07:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表