亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
STM32增量式PID電機(jī)pwm調(diào)速代碼
[打印本頁(yè)]
作者:
1870758944
時(shí)間:
2021-10-6 15:45
標(biāo)題:
STM32增量式PID電機(jī)pwm調(diào)速代碼
可使用外部中斷設(shè)置當(dāng)前轉(zhuǎn)速
單片機(jī)源程序如下:
#include "sys.h"
#include "delay.h"
#include "stdio.h"
#include "usart.h"
double Enconde_left ;
double m;
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init (115200);
delay_init();
OLED_Init ();
OLED_Clear();
Encoder_TIM2_Init();
TIM1_PWM_Init(7199,0);//pwm輸出
TIMER_Init(999,7199);//定時(shí)器中斷
KEY_EXTI_Init();
My_MOTOR_Init();
OLED_ShowString(0,0,"ENC:",12);
OLED_ShowString(0,3,"SET:",12);
OLED_ShowString(0,5,"OUT:",12);
while(1)
{
// Load(-2000);
//
// Enconde_left = Read_Speed(2);
// OLED_ShowNumber(50,5,Enconde_left,5,16);
OLED_Float(0,50,Enconde_left,3);
OLED_Float(3,50,Set_val1,3);
OLED_ShowNumber(50,5,PWM_TEST,5,12);
// Test_Send_User(Enconde_left,Set_val1,0,0,0,0, 0,0,0,0);
}
}
復(fù)制代碼
#include "control.h"
float PID_Calc(int Set_Val,double Now_Val);
CTRL PID;
double PWM_TEST;
int PWM_OUT = 500;
int Set_val1 = -350;
void PID_Val(void)
{
PID.Kp = 18;
PID.Ki = 0.3;
PID.Kd = 5;
}
void TIM3_IRQHandler(void) //TIM3中斷
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //檢查TIM3更新中斷發(fā)生與否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除TIMx更新中斷標(biāo)志
Enconde_left = Read_Speed(2);
// PWM_OUT += PID_Calc(Set_val1,Enconde_left);
// Limt_Duty(&PWM_OUT);
// Load(PWM_OUT);
PWM_TEST += PID_Calc(Set_val1,Enconde_left);
Limt_Duty_1(&PWM_TEST);
Load(PWM_TEST);
}
}
float PID_Calc(int Set_Val,double Now_Val)
{
PID_Val();
float PID_Inc = 30; //增量
PID.Ek = Set_Val - Now_Val;//本次誤差
PID_Inc = PID.Kp * (PID.Ek - PID.Ek1) + PID.Ki * PID.Ek + PID.Kd * (PID.Ek - 2 * PID.Ek1 + PID.Ek2 );
PID.Ek2 = PID.Ek1 ;
PID.Ek1 = PID.Ek ;
return PID_Inc;
}
void EXTI3_IRQHandler(void)
{
Set_val1 -= 50;
EXTI_ClearITPendingBit(EXTI_Line3);
}
void EXTI4_IRQHandler(void)
{
Set_val1 += 50;
EXTI_ClearITPendingBit(EXTI_Line4);
}
void EXTI9_5_IRQHandler(void)
{
static u8 temp = 0;
if(!temp)
{
Set_val1 = 300;
temp = 1;
}
else
{
Set_val1 = -300;
temp = 0;
}
EXTI_ClearITPendingBit(EXTI_Line5);
}
復(fù)制代碼
所有代碼51hei附件下載:
外部中斷設(shè)置轉(zhuǎn)速.7z
(238.62 KB, 下載次數(shù): 102)
2021-10-6 17:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1