打印
[应用相关]

STM32_PID

[复制链接]
783|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xinpian101|  楼主 | 2018-4-27 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32_PID.rar (484.25 KB)


沙发
xinpian101|  楼主 | 2018-4-27 22:18 | 只看该作者
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name          : main.c
* Author             : MCD Application Team
* Version            : V2.0.1
* Date               : 06/13/2008
* Description        : Main program body
********************************************************************************
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "System_init.h"
#include "Adjust.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
extern vu16 ADCConvertedValue;
extern unsigned char Flag_1mS;
extern unsigned char Flag_100mS;
extern unsigned char Flag_1S;
extern int U_Set;
extern u16 CCR1_Val;
/* Private function prototypes -----------------------------------------------*/
/*******************************************************************************
* Function Name  : main
* Description    : Main program
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
int main(void)
{
unsigned char N=0;
float Pv;
#ifdef DEBUG
  debug();
#endif
  System_Configuration();
  printf("This is an example of PID!\n\r");
  while (1)
  {
  switch (N){
          case 0:
                          if(Flag_1mS==1){
                        if(U_Set-ADCConvertedValue>=10||U_Set-ADCConvertedValue<=-10){
                        Pv=Vol(U_Set,ADCConvertedValue);
                        CCR1_Val=CCR1_Val+Pv/2.04;
                        if(CCR1_Val>=999)
                        CCR1_Val=999;
                        else if(CCR1_Val<=1)
                        CCR1_Val=1;

                        TIM3->CCR1=CCR1_Val;
                        }
                        Flag_1mS=0;
                        }
                        break;
          case 1:
                            if(Flag_100mS==1){
                        printf("%d,",ADCConvertedValue);printf("%d   ",CCR1_Val);
                        Flag_100mS=0;
                        }
                        break;
          case 2:
                            if(Flag_1S==1){
                        //printf("The feedback is %d\n\r",ADCConvertedValue);
                        Flag_1S=0;
                        }
                        break;
          default : break;
  }
  N++;
  if(N==3){
   N=0;
   }
  }
}
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

113

主题

1493

帖子

1

粉丝