標(biāo)題:
基于STM32F103Mini版直流電機(jī)pid調(diào)速程序 標(biāo)準(zhǔn)庫函數(shù)
[打印本頁]
作者:
ccmldy
時間:
2020-12-28 09:55
標(biāo)題:
基于STM32F103Mini版直流電機(jī)pid調(diào)速程序 標(biāo)準(zhǔn)庫函數(shù)
最近調(diào)試的直流電機(jī)控制,驅(qū)動器是L298N
單片機(jī)源程序如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "pwm.h"
#include "usart.h"
#include "exti.h"
#include "key.h"
int i=0;
float err=0;
float lasterr=0;
float realspeed;
float setspeed=460;
float vu=0;
float c=0;
int led0=2400;
float m=300;
float w=350;
int main(void)
{
delay_init(); //延時函數(shù)初始化
uart_init(9600);
EXTIX_Init();
TIM2_Cap_Init(65535,5);
TIM3_Int_Init(1000-1,7200-1); //=====定時器初始化 100ms一次中斷
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級分組2
LED_Init(); //初始化與LED連接的硬件接口
TIM1_PWM_Init(7119,0);
while(1)
{
PID_Init();
c=led0+vu;
if(c>7199)
c=7119.0;
if(c<0.0)
c=0.0;
TIM_SetCompare4(TIM1,c);
led0=c;
printf("%f,%f,%f\r\n",setspeed,realspeed,err);
}
}
void TIM3_IRQHandler(void) //TIM3中斷
{
extern float realspeed;
extern int i;
if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //檢查指定的TIM中斷發(fā)生與否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除TIMx的中斷待處理位
realspeed=0.985*i*10*60/260;
i=0;
}
}
復(fù)制代碼
所有資料51hei提供下載:
直流電機(jī)調(diào)速.7z
(196.02 KB, 下載次數(shù): 101)
2020-12-28 15:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1