#include"stm32f10x_tim.h"#include"stm32f10x_r"> #include"stm32f10x_tim.h"#include"stm32f10x_r" />
步进电机-插补算法stm32

步进电机-插补算法stm32

ID:40252189

大小:18.56 KB

页数:23页

时间:2019-07-29

步进电机-插补算法stm32_第1页
步进电机-插补算法stm32_第2页
步进电机-插补算法stm32_第3页
步进电机-插补算法stm32_第4页
步进电机-插补算法stm32_第5页
资源描述:

《步进电机-插补算法stm32》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档#include"stm32f10x.h"#include"delay.h"#include"misc.h"#include#include"stm32f10x_tim.h"#include"stm32f10x_rcc.h"#include"stm32f10x_usart.h"#includevoidRCC_Configuration(void);voidGPIO_Configuration(void);voidNVIC_Configuration(void);voidTIM_Configur

2、ation(void);voidUSART_Configuration(void);intfputc(intch,FILE*f);intfgetc(FILE*f);floatMx=1.44f,My=2.88f;//起点floatNx=10.0f,Ny=7.61f;//终点floatX1,Y1;floatX2,Y2;floatX3,Y3;//三种方法走后的坐标floatk;//斜率floatb;//y=kx+bfloatX,Y;//实际运行的坐标floatDelta1,Delta2,Delta3,Delta4;//三种方法的误差,4为不

3、走最后一步的误差floatDelta;//实际误差//floatDeltaMax;//最大误差文案大全实用文档charway;//选择的走法inta;//TIM6中断次数intnum=0;//总步数inttx=1,ty=1;//用来判断中断是否发生intnumx,numy;//计XY的步数intcounter=0;//计数值floattime;//时间floatnxd,nyd;//开始减速坐标floatnx,ny;//nx=Nx-0.0144f;floatfenmu;//公式中分母//intfrex[20]={2,10,30,60,1

4、00,150,220,300,390,500};//intfrey[20]={2,10,30,60,100,150,220,300,390,500};intfrex[20]={1098,2931,7585,18242,37754,62245,81757,92414,97068,98901};intfrey[20]={1098,2931,7585,18242,37754,62245,81757,92414,97068,98901};intprex[20]={0};intprey[20]={0};intmain(void){inti,j;

5、intnpwm=10;//加减速每段脉冲数//算出预分频值for(i=0;i<10;i++){prex[i]=72000000/(frex[i]*200);prey[i]=72000000/(frey[i]*200);}文案大全实用文档//配置,初始化RCC_Configuration();GPIO_Configuration();USART_Configuration();TIM_Configuration();NVIC_Configuration();Delay_Init();TIM_Cmd(TIM2,ENABLE);//catc

6、hXYTIM_Cmd(TIM6,ENABLE);//计时//TIM_SetCounter(TIM6,0);//开始运行{//计算相关量X=Mx;Y=My;k=(Ny-My)/(Nx-Mx);b=My-k*Mx;//y=kx+bnxd=Nx-90*0.0144f;nyd=Ny-90*0.0144f;nx=Nx-0.0144f;ny=Ny-0.0144f;fenmu=sqrt(k*k+1);for(i=1;i<10;i++)//加速阶段,分10段{文案大全实用文档while(j

7、2=Y+0.0144f;X3=X+0.0144f;Y3=Y+0.0144f;Delta1=fabs(k*X1-Y1+b)/fenmu;Delta2=fabs(k*X2-Y2+b)/fenmu;Delta3=fabs(k*X3-Y3+b)/fenmu;//三种走法的误差//选择最小误差走法if(Delta1

8、等待中断发生(中断失能),以确保一步一脉冲{case1:X=X+0.0144f;TIM_Cmd(TIM3,ENABLE);while(tx);tx=1;break;case2:Y=Y+0.0144f;TIM_Cmd(TI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。