找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1831|回复: 0
收起左侧

pid 双向DCDC. tm32程序

[复制链接]
ID:348363 发表于 2018-6-13 18:39 | 显示全部楼层 |阅读模式
pid stm32 程序
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "oled.h"
  6. #include "pwm.h"
  7. #include "key.h"
  8. #include "timer.h"
  9. #include "dma.h"
  10. #include "PID.h"

  11. //int x=0;
  12. int l=1800;
  13. int a=0;
  14. int mode=0;
  15. extern int  duty;
  16. extern float sv1;
  17. int main(void)
  18. {       
  19.          double h=0;
  20.          double k=0;
  21.          double w=0;
  22.          double temp=0;

  23.          
  24.          
  25.          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
  26.          delay_init();     //延时函数初始化          
  27.          TIM1_PWM_Init(3599,0);       
  28.    OLED_Init();         
  29.          LED_Init();
  30.    ADC1_Config();
  31.          KEY_Init();
  32.          
  33.          
  34. OLED_ShowString(0,16,"adc1=",12);
  35. OLED_ShowString(0,32,"adc2=",12);
  36. //OLED_ShowString(0,64,"adc3=",12);
  37. OLED_ShowString(0,0,"duty=",12);         
  38. OLED_ShowString(0,48,"I",12);
  39.          
  40.          TIM3_Int_Init(3599,200);

  41.          
  42.    while(1)
  43.          {
  44.                  h=ReadADCAverageValue(0);
  45.                  k=ReadADCAverageValue(1);
  46.         //         w=ReadADCAverageValue(2);
  47.                  temp=k*0.0032-3.4502;
  48.                  
  49.                  
  50.                  
  51.                
  52.                  OLED_ShowNum(34,16,h,4,12);
  53.                  OLED_ShowNum(34,32,k,4,12);
  54.         //         OLED_ShowNum(34,64,w,4,12);
  55.                  OLED_ShowNum(34,0,duty,4,12);
  56.                  OLED_ShowFloat(34,48,temp,4,12);
  57.                
  58.              if(temp>1.95)
  59.                          {
  60.                                 if(h>1500)
  61.                                 {
  62.                                         PA15=1;
  63.                                 }
  64.                         }
  65.                          else PA15=0;
  66.                        

  67.                        
  68.                                
  69.                
  70.       OLED_Refresh_Gram();
  71.                   
  72.           switch(KEY_Scan(0))
  73.                 {                                 
  74.                
  75.             case KEY0_PRES:a+=33;break;
  76.                         case KEY2_PRES:a+=30;break;
  77.                 //        case KEY0_PRES:duty+=100;break;
  78.                 //        case KEY2_PRES:duty+=30;break;
  79.                         case KEY3_PRES: mode=1;break;
  80.                         case KEY4_PRES: mode=2;break;
  81.                        
  82.                   default:break;
  83.                 }
  84.                
  85.          TIM_SetCompare1(TIM1,duty);       
  86.                

  87.                  

  88. }
  89.          }

  90.          
  91.          
  92.          
复制代码


双向DCDC.rar

343.73 KB, 下载次数: 41, 下载积分: 黑币 -5

回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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