完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uchar unsigned char #define uint unsigned int uchar i=0; ***it IN1=P1^2; ***it IN2=P1^3; ***it IN3=P1^4; ***it IN4=P1^5; ***it ENA=P1^6; ***it ENB=P1^7; int e ,e1;//偏差 float uk,uk1,duk ;//输出值 float Kp=20;//控制系数 20, int out=0; uint SpeedSet=300; uint cnt=0; uint Inpluse=0,num=0;//脉冲计数 uint PWMtime=100;//脉冲宽度 void Control(); void SystemInit(); void delay(uchar x); void PWMOUT(); /**************主函数************/ void main() { SystemInit(); while(1) { SpeedSet=300; PWMOUT(); //输出PWM } } void Control() //偏差计算 { e=SpeedSet-num; //误差=设定值-1s采集的脉冲值 duk=Kp*(e-e1); uk=uk1+duk; out=(int)uk; //输出为占空比 if(out>1000) { out=1000; } else if(out<0) { out=0; } uk1=uk; //变量值移位 e1=e; PWMTime=out; } void delay(uchar x) { uint i,j; for(i=x;i>0;i--) for(j=50;j>0;j--); } void PWMOUT() //输出PWM脉冲 { if(cnt { ENA=1; ENB=1; IN1=1;IN2=0;IN3=1;IN4=0; } else { ENA=0; ENB=0; } if(cnt>1000) cnt=0; } void SystemInit() { TMOD=0X21; //定时器1用来控制pwm,定时器0,用来计算转速 TH0=0XF9; TL0=0X0F; TH1=0xC0; TL1=0XC0; ET1=1; ET0=1; TR0=1; TR1=1; EX0=1; //中断0用来测量转速 IT0=1; EA=1; e =0; //初始化 差值 e1=0; } void int0() interrupt 0 { Inpluse++; //采集外部脉冲 } void t0() interrupt 1 { static unsigned char Bit=0;//静态变量,退出程序值保留 static unsigned int time=0; TH0=0XF9; //赋初值 TL0=0X0F; //赋初值 Bit++; time++; //转速测量周期 if(Bit>8) Bit=0; P0=0xff; if(time>100) { time=0; num=Inpluse*5; //算得1s采集的脉冲数 Inpluse=0; Control(); //调用比例控制算法,输出PWM } } void timer_1() interrupt 3 { cnt++; //cnt越大占空比越高2.5Khz } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
327 浏览 0 评论
527 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口编写程序
1045 浏览 0 评论
STM32系列单片机可以让自己的GPIO去控制自己的RESET吗?有什么风险?可以规避吗?
1402 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口参数设置
836 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11581 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-31 21:09 , Processed in 0.517988 second(s), Total 71, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号