diff --git a/App/Inc/app.h b/App/Inc/app.h
index b77db33..31bf0b0 100644
--- a/App/Inc/app.h
+++ b/App/Inc/app.h
@@ -2,7 +2,7 @@
* @Author: wujunchao 24472040@qq.com
* @Date: 2024-05-21 13:47:11
* @LastEditors: wujunchao 24472040@qq.com
- * @LastEditTime: 2024-10-14 15:22:14
+ * @LastEditTime: 2024-10-15 08:49:52
* @FilePath: \mfps\App\Inc\app.h
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -28,14 +28,17 @@
#include "stdlib.h"
#include "string.h"
#include "flash.h"
+#include "uniform.h"
#define ocin1 HAL_GPIO_ReadPin(OCIN1_GPIO_Port,OCIN1_Pin)
#define ocin2 HAL_GPIO_ReadPin(OCIN2_GPIO_Port,OCIN2_Pin)
#define GREEN_ON HAL_GPIO_WritePin(LED_NOR_GPIO_Port, LED_NOR_Pin, GPIO_PIN_RESET)
#define GREEN_OFF HAL_GPIO_WritePin(LED_NOR_GPIO_Port, LED_NOR_Pin, GPIO_PIN_SET)
+#define GREEN_TOG HAL_GPIO_TogglePin(LED_NOR_GPIO_Port, LED_NOR_Pin)
#define BLUE_ON HAL_GPIO_WritePin(LED_ERR_GPIO_Port, LED_ERR_Pin, GPIO_PIN_RESET)
#define BLUE_OFF HAL_GPIO_WritePin(LED_ERR_GPIO_Port, LED_ERR_Pin, GPIO_PIN_SET)
+#define BLUE_TOG HAL_GPIO_TogglePin(LED_ERR_GPIO_Port, LED_ERR_Pin)
void app_act (void);
void motor_protect_ads(float threshold_neg, float threshold_pos);
@@ -47,11 +50,13 @@ extern int it_5ms_cnt ,it_5ms_flag;
extern int it_10ms_cnt ,it_10ms_flag;
extern int it_50ms_cnt ,it_50ms_flag;
extern int it_100ms_cnt ,it_100ms_flag;
-extern int it_300ms_cnt ,it_300ms_flag;
+extern int it_250ms_cnt ,it_250ms_flag;
extern int it_500ms_cnt ,it_500ms_flag;
extern int it_1000ms_cnt ,it_1000ms_flag;
extern int it_5000ms_cnt,it_5000ms_flag;
extern int tick_500ms;
+extern int tick_250ms;
+
extern uint8_t rx_data2[6];
extern uint8_t magnet_tx[7];
extern unsigned int smp_intr_temp[2];
diff --git a/App/Inc/key.h b/App/Inc/key.h
index a365031..bc0c832 100644
--- a/App/Inc/key.h
+++ b/App/Inc/key.h
@@ -1,7 +1,8 @@
#ifndef _KEY_H
#define _KEY_H
-#include "main.h"
+#include "app.h"
+
//void Key_Init(void);
void Key_Scan(void);
@@ -26,5 +27,6 @@ extern uint32_t dcr_max;
extern uint8_t old2new_flag;
extern uint8_t speed_select;
extern uint8_t speed_ensure;
+extern uint8_t direc_select;
#endif
diff --git a/App/Inc/myLib.h b/App/Inc/myLib.h
index 7765594..9b93525 100644
--- a/App/Inc/myLib.h
+++ b/App/Inc/myLib.h
@@ -19,28 +19,28 @@ extern const ASCIIFont afont16x8;
extern const ASCIIFont afont24x12;
/**
- * @brief ṹ
- * @note ֿǰ4ֽڴ洢utf8 ʣֽڴ洢ģ
- * @note ֿݿʹòɶLEDȡģ(https://led.baud-dance.com)
+ * @brief 字体结构体
+ * @note 字库前4字节存储utf8编码 剩余字节存储字模数据
+ * @note 字库数据可以使用波特律动LED取模助手生成(https://led.baud-dance.com)
*/
typedef struct Font {
- uint8_t h; // ָ߶
- uint8_t w; // ֿ
- const uint8_t *chars; // ֿ ֿǰ4ֽڴ洢utf8 ʣֽڴ洢ģ
- uint8_t len; // ֿⳤ 256Ϊuint16_t
- const ASCIIFont *ascii; // ȱʡASCII ֿûжӦַҪʾASCIIַʱʹ
+ uint8_t h; // 字高度
+ uint8_t w; // 字宽度
+ const uint8_t *chars; // 字库 字库前4字节存储utf8编码 剩余字节存储字模数据
+ uint8_t len; // 字库长度 超过256则请改为uint16_t
+ const ASCIIFont *ascii; // 缺省ASCII字体 当字库中没有对应字符且需要显示ASCII字符时使用
} Font;
-extern const Font font16x16;//ҪʾݵĽṹ
+extern const Font font16x16;//声明你的想要显示数据的结构体
/**
- * @brief ͼƬṹ
- * @note ͼƬݿʹòɶLEDȡģ(https://led.baud-dance.com)
+ * @brief 图片结构体
+ * @note 图片数据可以使用波特律动LED取模助手生成(https://led.baud-dance.com)
*/
typedef struct Image {
- uint8_t w; // ͼƬ
- uint8_t h; // ͼƬ߶
- const uint8_t *data; // ͼƬ
+ uint8_t w; // 图片宽度
+ uint8_t h; // 图片高度
+ const uint8_t *data; // 图片数据
} Image;
extern const Image bilibiliImg;
diff --git a/App/Inc/uniform.h b/App/Inc/uniform.h
index 5c68b0e..59af87e 100644
--- a/App/Inc/uniform.h
+++ b/App/Inc/uniform.h
@@ -3,7 +3,17 @@
#include "app.h"
+void uniform_motion(void);
+char uniform_limit(float start, float end);
+void speed_set(uint32_t uni_speed);
+#define SLOW_SPEED (uint32_t)10000
+#define MEDIUM_SLOW_SPEED (uint32_t)30000
+#define MEDIUM_SPEED (uint32_t)60000
+#define MEDIUM_FAST_SPEED (uint32_t)90000
+#define FAST_SPEED (uint32_t)120000
+extern uint32_t uniform_speed;
+extern uint32_t uniform_speed_prv;
#endif
diff --git a/App/Src/app.c b/App/Src/app.c
index 409f61e..9bd41af 100644
--- a/App/Src/app.c
+++ b/App/Src/app.c
@@ -35,6 +35,7 @@ void app_act (void)
if(old2new_flag == 0)
{
key_act(); //执行旧版功能
+ Deal_Motor();
}else
{
key_act_new(); //执行新版功能
@@ -93,7 +94,7 @@ void app_act (void)
// 电机
motor_protect_ads(100,1900); //电阻尺限位
- Deal_Motor();
+// Deal_Motor();
// 串口数据处理
diff --git a/App/Src/key.c b/App/Src/key.c
index ec359be..abf047d 100644
--- a/App/Src/key.c
+++ b/App/Src/key.c
@@ -296,23 +296,19 @@ void key_act_new(void)
{
if(key_val[1] == 1 || key_val[2] == 1) //组合键是否按下
{ //未按下组合键时,执行新版程序
- if(key_msg[0] == 1)
+ if(key_msg[0] == 1) //确认,用于切换运动和停止
{
- GREEN_ON;
speed_ensure = 1;
key_msg[0] = 2;
}
- if(key_msg[1] == 1)
+ if(key_msg[1] == 1) //移动方向切换
{
- BLUE_ON;
- speed_select = (speed_select <= 0)?(2):(speed_select - 1);
+ direc_select = !direc_select;
key_msg[1] = 2;
}
- if(key_msg[2] == 1)
+ if(key_msg[2] == 1) //速度档位切换
{
- GREEN_OFF;
- BLUE_OFF;
- speed_select = (speed_select >= 2)?(0):(speed_select + 1);
+ speed_select = (speed_select >= 4)?(0):(speed_select + 1);
key_msg[2] = 2;
}
diff --git a/App/Src/motor.c b/App/Src/motor.c
index fba2491..ce9a0c2 100644
--- a/App/Src/motor.c
+++ b/App/Src/motor.c
@@ -1,80 +1,80 @@
#include "motor.h"
#include "app.h"
-#define STEP_LIN 16 //ֱг̲λֵ
-#define STEP_ROT 20 //г̲λֵ
-#define DATA_LEN 10 //г̲λֵ
+#define STEP_LIN 16 //直行程步长单位数值(脉冲数)
+#define STEP_ROT 20 //角行程步长单位数值(脉冲数)
+#define DATA_LEN 10 //角行程步长单位数值(脉冲数)
-#define MOTOR_STOP 0 //ֹͣ
-#define MOTOR_POS 1 //˶
-#define MOTOR_REV 2 //˶
-#define MOTOR_RETURN 3 //
+#define MOTOR_STOP 0 //电机停止
+#define MOTOR_POS 1 //电机正向运动
+#define MOTOR_REV 2 //电机反向运动
+#define MOTOR_RETURN 3 //电机返回
-int magnet_middle = 1240; //е
-int magnet_start = 800; //Χ-mv
-int magnet_end = 1200; //Χ-յmv
-#define motor_start 150 //˶Χmv
-#define motor_end 1850 //˶Χյmv
+int magnet_middle = 1240; //磁条中点
+int magnet_start = 800; //磁条范围-起点mv
+int magnet_end = 1200; //磁条范围-终点mv
+#define motor_start 150 //电机运动范围起点mv
+#define motor_end 1850 //电机运动范围终点mv
-int Travle_Flag = 0; //0 ֱ 1
-char Motor_Run = 2; //0 ֹͣ 1 2 еʼ 3 е
-char Run_Mode = 0; //0 㶯 1 һ 2
-unsigned int Run_Step = 0; //в
-unsigned int Run_Inter = 0; //мʱ
-unsigned int Run_Stop = 0; //㡱ֹͣʱ
-unsigned int Run_mm = 1; //нȣmm/תǶȣ㣩
-unsigned int Run_num = 0; //г̵תȦ
-unsigned int ct_num = 0; //
+int Travle_Flag = 0; //0 直 1 角
+char Motor_Run = 2; //0 停止 1 运行 2 运行到起始点 3 运行到结束点
+char Run_Mode = 0; //0 点动 1 方案一 2 方案二
+unsigned int Run_Step = 0; //电机运行步长
+unsigned int Run_Inter = 0; //电机运行间隔时长
+unsigned int Run_Stop = 0; //到“结束点”后,停止时间
+unsigned int Run_mm = 1; //行进长度(mm)/转动角度(°)
+unsigned int Run_num = 0; //角行程电机转动圈数
+unsigned int ct_num = 0; //磁条长度
-int mov_flag = 0; //־
-int send_flag = 0; //ͱ־
-int seat_flag = 0; //λñ־
-int motor_dire = 1; //ת
+int mov_flag = 0; //脉冲标志
+int send_flag = 0; //发送标志
+int seat_flag = 0; //位置标志
+int motor_dire = 1; //电机转动方向
int flag = 0;
-int motor_direc = 1;//ת
+int motor_direc = 1;//电机转动方向
char motor_control = 0;
-//
+//步骤
unsigned char Runmotor_step = 0;
-//
+//次数
unsigned int Runmotor_Nums = 0;
-//
+//清除电机标记
void ClrRunmotorStep(void)
{
- //
+ //步骤
Runmotor_step = 0;
- //
+ //次数
Runmotor_Nums = 0;
- //0
+ //脉冲标记清0
mov_flag = 0;
- //ͱ0
+ //发送标记清0
send_flag = 0;
- //λñ0
+ //位置标记清0
seat_flag = 0;
}
-//
-#define SPEED_MIN 0x00003A98 //ٶȣڸλ&Զӽ
-#define SPEED_NORMAL 0x00007530 //ٶȣڲ
-#define SPEED_MAX 0x0001D4C0 //Сٶȣڽӽ
+//处理马达运行
+#define SPEED_MIN 0x00003A98 //最大速度,用于复位&远距离接近
+#define SPEED_NORMAL 0x00007530 //常规速度,用于步进
+#define SPEED_MAX 0x0001D4C0 //最小速度,用于近距离接近
int first_flag = 1;
void Deal_Motor(void)
{
- //жֱг̻ǽг
- if(Travle_Flag == 0)//ֱг̡תһȦˮƽλ5mm
+ //判断直行程还是角行程
+ if(Travle_Flag == 0)//直行程——电机旋转一圈,磁条水平位移5mm
{
- motor_data[0] = 0x00;//00 ֱг 01 г
- //жϵֹͣУеʼλǽλ
- if( Motor_Run == 0) //ֹͣ
+ motor_data[0] = 0x00;//00 直行程 01 角行程
+ //判断电机停止还是运行,运行到起始位还是结束位
+ if( Motor_Run == 0) //停止
{
tmc5160_operate(MOTOR_STOP,0);
- if( speed_max != SPEED_NORMAL) //ٶȵٶȣɺٽ˴
+ if( speed_max != SPEED_NORMAL) //速度调整至常规速度,调整完成后不再进入此处
{
speed_max = SPEED_NORMAL; //VMAX
TMC5160_SPIWriteInt(VMAX_ADDR, speed_max,1);
@@ -84,42 +84,42 @@ void Deal_Motor(void)
}
}
- else if((Motor_Run == 1) && (first_flag == 0)) //Уϵ縴λɺЧ
+ else if((Motor_Run == 1) && (first_flag == 0)) //运行,上电复位完成后才生效
{
if(Motor_Run >= 1 && Runmotor_step == 0)
{
Runmotor_step = 1;
}
- //жϵзʽǵ㶯㶯ΪһͷΪ
- if(Run_Mode == 0)//㶯
+ //判断电机运行方式是点动还是连续,点动为方案三,方案一和方案二为连续
+ if(Run_Mode == 0)//点动(方案三)
{
- mov_step();//㶯
+ mov_step();//点动
}
- else if(Run_Mode == 1)//һܻԽλء
+ else if(Run_Mode == 1)//连续(方案一)“步长过大可能会越过限位开关”
{
- mov_loop1();//һ
+ mov_loop1();//方案一
}
-// else if(Run_Mode == 2)//ܻԽλء
+// else if(Run_Mode == 2)//连续(方案二)“步长过大可能会越过限位开关”
// {
-// //ѭʼ--ʼ㡱һͣʼ
-// mov_loop2();//
+// //磁条循环“起始点-结束点-起始点”,一定次数后停在起始点
+// mov_loop2();//方案二
// }
- else//ʼ
+ else//初始化
{
tmc5160_operate(MOTOR_STOP,0);
}
}
- else if(Motor_Run == 2)//еʼλ
+ else if(Motor_Run == 2)//运行到起始位
{
- int rt2_stop_cnt = 0; //ֹֹͣwhile
- if( ocin1 == 0 ) //жǷʼλ1
+ int rt2_stop_cnt = 0; //停止计数,防止while卡死
+ if( ocin1 == 0 ) //判断是否到达始限位1
{
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -127,31 +127,31 @@ void Deal_Motor(void)
if(rt2_stop_cnt > 10000)
{
rt2_stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) rt2_stop_cnt = 0;
}
- if(first_flag == 1) //ֹͣ¼һθλʱλ
+ if(first_flag == 1) //停止后记录第一次复位时电机位置
{
- TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //ȡʵλXACTUAL
+ TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //读取实际位置XACTUAL
XA_32 = Raw_32(XA);
first_xa_32 = XA_32;
first_flag = 0;
}
- motor_direc = MOTOR_POS; //λ1˶
+ motor_direc = MOTOR_POS; //在限位1处仅允许正向运动
Runmotor_step = 0;
Motor_Run = 0;
return;
}
- if( (X_ads1220 <= (motor_start) ) && (X_ads1220 != 0) ) //λϵڶȡXֵΪ0
+ if( (X_ads1220 <= (motor_start) ) && (X_ads1220 != 0) ) //电机起点限位,上电初期读取到的X值为0
{
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -159,7 +159,7 @@ void Deal_Motor(void)
if(rt2_stop_cnt > 10000)
{
rt2_stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) rt2_stop_cnt = 0;
@@ -169,9 +169,9 @@ void Deal_Motor(void)
Runmotor_step = 0;
Motor_Run = 0;
- if(first_flag) //¼һθλʱλ
+ if(first_flag) //记录第一次复位时电机位置
{
- TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //ȡʵλXACTUAL
+ TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //读取实际位置XACTUAL
XA_32 = Raw_32(XA);
first_xa_32 = XA_32;
@@ -181,9 +181,9 @@ void Deal_Motor(void)
}
- if((ocin2 == 1) && (ocin2 == 1) && (X_ads1220 != 0)) //δλʱٴУϵڣocin1 == 1ocin2 == 1Xads == 0
+ if((ocin2 == 1) && (ocin2 == 1) && (X_ads1220 != 0)) //未到达限位时,快速大步长运行,上电初期:ocin1 == 1,ocin2 == 1,Xads == 0
{
- if( speed_max != SPEED_MAX ) //ĿٶȵΪٶȣɺٽ˴
+ if( speed_max != SPEED_MAX ) //目标速度调整为最大速度,调整完成后不再进入此处
{
speed_max = SPEED_MAX;
TMC5160_SPIWriteInt(VMAX_ADDR, speed_max,1); // VMAX
@@ -196,13 +196,13 @@ void Deal_Motor(void)
}
}
- else if((Motor_Run == 3) && (first_flag == 0)) //еλ
+ else if((Motor_Run == 3) && (first_flag == 0)) //运行到结束位
{
int rt3_stop_cnt = 0;
- if( ocin2 == 0 ) //жǷλ
+ if( ocin2 == 0 ) //判断是否到达终限位
{
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -210,7 +210,7 @@ void Deal_Motor(void)
if(rt3_stop_cnt > 10000)
{
rt3_stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) rt3_stop_cnt = 0;
@@ -222,10 +222,10 @@ void Deal_Motor(void)
return;
}
- if(X_ads1220 >= (motor_end)) //ﵽյλֹͣ
+ if(X_ads1220 >= (motor_end)) //达到电机终点限位后停止
{
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -233,7 +233,7 @@ void Deal_Motor(void)
if(rt3_stop_cnt > 10000)
{
rt3_stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) rt3_stop_cnt = 0;
@@ -245,7 +245,7 @@ void Deal_Motor(void)
return;
}
- if((ocin2 == 1) && (ocin2 == 1) && (X_ads1220 != 0)) //ϵXadsֵΪ
+ if((ocin2 == 1) && (ocin2 == 1) && (X_ads1220 != 0)) //上电初期Xads值为零
{
if( speed_max != SPEED_MAX)
{
@@ -259,107 +259,107 @@ void Deal_Motor(void)
tmc5160_operate(MOTOR_POS,51200*30);
}
}
- else//ݴ
+ else//数据错误
{
//SC_Init();
}
}
- else //г̡תһȦת4
+ else //角行程——电机旋转一圈,磁条旋转4°
{
-// motor_data[0] = 0x01;//00 ֱг 01 г
-// //жϵֹͣУеʼλǽλ
-// if( Motor_Run == 0)//ֹͣ
+// motor_data[0] = 0x01;//00 直行程 01 角行程
+// //判断电机停止还是运行,运行到起始位还是结束位
+// if( Motor_Run == 0)//停止
// {
// tmc5160_operate(0,0);
// }
-// else if(Motor_Run == 1)//
+// else if(Motor_Run == 1)//运行
// {
// if(Motor_Run >= 1 && Runmotor_step == 0)
// {
// Runmotor_step = 1;
// }
//
-// //жϵзʽǵ㶯㶯ΪһͷΪ
-// if(Run_Mode == 0)//㶯
+// //判断电机运行方式是点动还是连续,点动为方案三,方案一和方案二为连续
+// if(Run_Mode == 0)//点动(方案三)
// {
-// motor_data[2] = 0x00;//ʱ
-// mov_step_ang();//㶯
+// motor_data[2] = 0x00;//发送时反馈的数据
+// mov_step_ang();//电机点动运行
// }
-// else if(Run_Mode == 1)//һ
+// else if(Run_Mode == 1)//连续(方案一)
// {
-// motor_data[2] = 0x01;//ʱ
-// mov_loop1_ang();//תһȦ
+// motor_data[2] = 0x01;//发送时反馈的数据
+// mov_loop1_ang();//磁条旋转一圈
// }
-// else if(Run_Mode == 2)//
+// else if(Run_Mode == 2)//连续(方案二)
// {
-// motor_data[2] = 0x02;//ʱ
+// motor_data[2] = 0x02;//发送时反馈的数据
// if(seat_flag == 0)
// {
-// if(GPIO_ReadPin(GPIO1,GPIO_PIN_4) == 0) //жǷλ
+// if(GPIO_ReadPin(GPIO1,GPIO_PIN_4) == 0) //判断是否到达限位处
// {
-// motor_stop(); //ֹͣ
+// motor_stop(); //电机停止
// Run_mm = 0;
-// seat_flag = 1;//λñ
+// seat_flag = 1;//位置标记
// }
// else
// {
-// REV(); //ת
-// motor_start(); //
-// motor_mov(1); //ṩź
+// REV(); //反转
+// motor_start(); //运行
+// motor_mov(1); //提供脉冲信号
// }
// }
// else
// {
-// mov_loop2_ang();//תһȦ
+// mov_loop2_ang();//磁条旋转一圈
// }
// }
-// else//ʼ
+// else//初始化
// {
// motor_stop();
// }
// }
-// else if(Motor_Run == 2 || Motor_Run == 3)//еʼλ
+// else if(Motor_Run == 2 || Motor_Run == 3)//运行到起始位
// {
-// mov_begin();//صʼλ
+// mov_begin();//回到起始位
// }
-// else//ݴ
+// else//数据错误
// SC_Init();
}
}
-//㶯Уֱг̣
+//电机点动运行,方案三(直行程)
void mov_step(void)
{
- if( (ocin1 == 0) && (motor_direc != MOTOR_POS) )//жǷʼλǵٴ⣬ж˷
+ if( (ocin1 == 0) && (motor_direc != MOTOR_POS) )//判断是否到达始限位,考虑到再次启动的问题,判断条件增加了方向
{
- motor_direc = MOTOR_POS; //λ
+ motor_direc = MOTOR_POS; //到达限位后反向
Runmotor_step = 0;
- Motor_Run = 0; //תֹģʽ
+ Motor_Run = 0; //跳转至静止模式
return;
}
- if( (ocin2 == 0) && (motor_direc != MOTOR_REV) )//жǷλ
+ if( (ocin2 == 0) && (motor_direc != MOTOR_REV) )//判断是否到达终限位
{
- motor_direc = MOTOR_REV; //λ
+ motor_direc = MOTOR_REV; //到达限位后反向
Runmotor_step = 0;
- Motor_Run = 0; //תֹģʽ
+ Motor_Run = 0; //跳转至静止模式
return;
}
switch(Runmotor_step)
{
- case 1 : //
+ case 1 : //电机运行准备
{
- Runmotor_Nums = 0; //д
+ Runmotor_Nums = 0; //运行次数
mov_flag = 0;
Runmotor_step++;
}
break;
- case 2 : //й
+ case 2 : //电机运行过程
{
- if(Run_Step == 0) //λϢʱʹλĿƲRun_mm
+ if(Run_Step == 0) //上位机无消息时使用下位机的控制参数Run_mm
{
tmc5160_operate(motor_direc,Run_mm * 10240); //1 Run_mm = 1 mm
@@ -367,7 +367,7 @@ void mov_step(void)
{
tmc5160_operate(motor_direc,Run_Step * 1024); //1 Runstep = 10 mm
}
- if(busy_flag == 0) //Ŀλúbusy_flag == 0
+ if(busy_flag == 0) //电机到达目标位置后busy_flag == 0
{
Runmotor_step++;
}
@@ -380,25 +380,25 @@ void mov_step(void)
break;
case 4 :
{
- if(it_50ms_flag) //50msʱ־
+ if(it_50ms_flag) //检查50ms定时标志
{
- it_50ms_flag = 0; //ʱ־
+ it_50ms_flag = 0; //定时标志清零
Runmotor_Nums++;
}
- if(Runmotor_Nums >= 10) //ʱ
+ if(Runmotor_Nums >= 10) //时间
{
Runmotor_Nums = 0;
Runmotor_step++;
- get_state(); //ȡǰ״̬
- send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data); //ݷ
+ get_state(); //读取电机当前状态
+ send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data); //数据发送
}
}
break;
case 5 :
{
Runmotor_step = 0;
- Motor_Run = 0; //бȴһλ
+ Motor_Run = 0; //运行标记清除,等待下一次上位机发送命令
}
break;
default :
@@ -410,33 +410,33 @@ void mov_step(void)
}
-//Уһֱг̣
+//电机连续运行,方案一(直行程)
int stop_cnt = 0;
signed int motor_x_start = 0,motor_x_end = 0;
-uint8_t loop_flag = 0; //α־0Σӽ1ΣΧ2ΣΧڷ3Σ뿪زλ
+uint8_t loop_flag = 0; //阶段标志,0阶段:接近磁条,1阶段:磁条范围内正向步进,2阶段:磁条范围内反向步进,3阶段:离开磁条返回并复位。
void mov_loop1(void)
{
switch(Runmotor_step)
{
- case 1 : //
+ case 1 : //电机运行准备
{
-// motor_direc = MOTOR_POS; //λ
+// motor_direc = MOTOR_POS; //由上位机控制
Run_num = 0;
- motor_data[2] = 0x00; //ʱ
- Runmotor_Nums = 0; //д
+ motor_data[2] = 0x00; //发送时反馈的数据
+ Runmotor_Nums = 0; //运行次数
mov_flag = 0;
busy_flag = 0;
Runmotor_step++;
}
break;
- case 2 : //й̣ڷΧ
+ case 2 : //电机运行过程,运行至磁条所在范围
{
- if( X_ads1220 >= magnet_start ) //һεΧ,ԵΪ
+ if( X_ads1220 >= magnet_start ) //第一次到达磁条范围的起点,以电阻尺为准
{
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -444,20 +444,20 @@ void mov_loop1(void)
if(stop_cnt > 10000)
{
stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) stop_cnt = 0;
}
- loop_flag = 1; //0ν1
+ loop_flag = 1; //0阶段结束,进入1阶段
- TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //ֹͣȡʵλXACTUAL
+ TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //停止后读取实际位置XACTUAL
XA_32 = Raw_32(XA);
- motor_x_start = XA_32; //¼ʱĵλ
+ motor_x_start = XA_32; //记录起点时的电机位置
- switch(magnet_type) //ݲͬ˶յ
+ switch(magnet_type) //根据不同规格,计算电机运动的终点
{
case 25:
{
@@ -486,17 +486,17 @@ void mov_loop1(void)
break;
}
- if(it_1000ms_flag) //1000msʱ־
+ if(it_1000ms_flag) //检查1000ms定时标志
{
- it_1000ms_flag = 0; //ʱ־
+ it_1000ms_flag = 0; //定时标志清零
Runmotor_Nums++;
}
- if(Runmotor_Nums >= Run_Stop) //ʱ
+ if(Runmotor_Nums >= Run_Stop) //时间
{
Runmotor_step++;
Runmotor_Nums = 0;
- get_state(); //ȡǰ״̬
- send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data); //ݷ
+ get_state(); //读取电机当前状态
+ send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data); //数据发送
}
}
else
@@ -504,11 +504,11 @@ void mov_loop1(void)
if(send_flag == 0)
{
send_flag = 1;
-// get_state(); //ȡǰ״̬
-// send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data);//ݷ
+// get_state(); //读取电机当前状态
+// send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data);//数据发送
}
- if( X_ads1220 <= magnet_start - 150) //볬150ʱ˶Ե߶Ϊ
+ if( X_ads1220 <= magnet_start - 150) //与磁条起点距离超过150时,快速运动,以电阻尺读数为准
{
if( speed_max != SPEED_MAX)
{
@@ -519,7 +519,7 @@ void mov_loop1(void)
TMC5160_SPIWriteInt(V1_ADDR, speed_1,1);
}
}
- else //Сڵ150ʱСٶ
+ else //与磁条起点距离小于等于150时,减速至最小速度
{
if( speed_max != SPEED_MIN)
{
@@ -531,16 +531,16 @@ void mov_loop1(void)
}
}
- tmc5160_operate( motor_direc, 51200*30 ); //150mmĴѭ˶
+ tmc5160_operate( motor_direc, 51200*30 ); //以150mm的大步长循环运动
- Runmotor_step = 6; //case 2 - 6 ֮ѭ2˶6λ
+ Runmotor_step = 6; //在case 2 - 6 之间循环,2运动,6限位
}
}
break;
case 3 :
{
- //ΧС˶λΪmm
- if( speed_max != SPEED_NORMAL) //ٶȽٶ
+ //进入磁条范围后,以小步长进行运动,单位为mm
+ if( speed_max != SPEED_NORMAL) //速度降低至常规速度
{
speed_max = SPEED_NORMAL; //VMAX
TMC5160_SPIWriteInt(VMAX_ADDR, speed_max,1);
@@ -554,33 +554,33 @@ void mov_loop1(void)
if(Run_Step == 0)
{
- tmc5160_operate(motor_direc,Run_mm*10240); //λ̶Ϊ1mmOLED2.cOLED_MenuTest()case5
+ tmc5160_operate(motor_direc,Run_mm*10240); //下位机固定为1mm步长,OLED2.c→OLED_MenuTest()→case5
}else
{
- tmc5160_operate(motor_direc,Run_Step*1024); //λ
+ tmc5160_operate(motor_direc,Run_Step*1024); //上位机给定步长
}
- if(busy_flag == 0) //ָλúͷbusy_flag
+ if(busy_flag == 0) //到达指定位置后释放busy_flag
{
Runmotor_step++;
}
}
break;
- case 4 : //ʱ
+ case 4 : //延时
{
- if(it_50ms_flag) //50msʱ־
+ if(it_50ms_flag) //检查50ms定时标志
{
- it_50ms_flag = 0; //ʱ־
+ it_50ms_flag = 0; //定时标志清零
Runmotor_Nums++;
}
- if(Runmotor_Nums >= (Run_Inter / 50)) //ʱ
+ if(Runmotor_Nums >= (Run_Inter / 50)) //时间
{
Runmotor_Nums = 0;
Runmotor_step++;
send_flag = 0;
- get_state(); //ȡǰλ
- send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data); //ݷ
+ get_state(); //读取电机当前位置
+ send_set_resp(0xF001, OBJ_DEVICE_ADDR, DATA_LEN, motor_data); //数据发送
}
}
@@ -588,14 +588,14 @@ void mov_loop1(void)
case 5 :
{
- if( (ocin1 == 0) && (motor_direc != MOTOR_POS) ) //жǷʼλ
+ if( (ocin1 == 0) && (motor_direc != MOTOR_POS) ) //判断是否到达始限位
{
motor_direc = MOTOR_POS;
Runmotor_step = 0;
Motor_Run = 0;
break;
}
- if( (ocin2 == 0) && (motor_direc != MOTOR_REV) ) //жǷλ
+ if( (ocin2 == 0) && (motor_direc != MOTOR_REV) ) //判断是否到达终限位
{
motor_direc = MOTOR_REV;
Runmotor_step = 0;
@@ -603,18 +603,18 @@ void mov_loop1(void)
break;
}
- Runmotor_step = 3; //Χ֮ǰ3-4-5֮ѭ
+ Runmotor_step = 3; //超出磁条范围之前,在3-4-5之间循环
- TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //ȡʵλXACTUAL
+ TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //读取实际位置XACTUAL
XA_32 = Raw_32(XA);
- if(motor_x_end != 0) //δ쳣ʱԵΪ
+ if(motor_x_end != 0) //未出现异常时以电机为准
{
- if((XA_32 >= motor_x_end) && (motor_direc != MOTOR_REV)) //Χյֹͣ
+ if((XA_32 >= motor_x_end) && (motor_direc != MOTOR_REV)) //到达磁条范围终点后,停止并反向
{
- loop_flag = 2; //1ν2
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ loop_flag = 2; //1阶段结束,进入2阶段
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -622,7 +622,7 @@ void mov_loop1(void)
if(stop_cnt > 10000)
{
stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) stop_cnt = 0;
@@ -630,18 +630,18 @@ void mov_loop1(void)
if(busy_flag == 0)
{
- motor_direc = MOTOR_REV; //ֹͣ
+ motor_direc = MOTOR_REV; //停止后反向
Runmotor_Nums = 0;
Runmotor_step = 7;
}
}
- }else //쳣ʱԵΪ
+ }else //出现异常时以电阻尺为准
{
- if((X_ads1220 >= magnet_end) && (motor_direc != MOTOR_REV)) //Χյֹͣ
+ if((X_ads1220 >= magnet_end) && (motor_direc != MOTOR_REV)) //到达磁条范围终点后,停止并反向
{
- loop_flag = 2; //1ν2
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ loop_flag = 2; //1阶段结束,进入2阶段
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -649,7 +649,7 @@ void mov_loop1(void)
if(stop_cnt > 10000)
{
stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) stop_cnt = 0;
@@ -657,7 +657,7 @@ void mov_loop1(void)
if(busy_flag == 0)
{
- motor_direc = MOTOR_REV; //ֹͣת
+ motor_direc = MOTOR_REV; //停止后反转
Runmotor_Nums = 0;
Runmotor_step = 7;
}
@@ -666,11 +666,11 @@ void mov_loop1(void)
- if((XA_32 <= motor_x_start) && (motor_direc == MOTOR_REV)) //صΧλ
+ if((XA_32 <= motor_x_start) && (motor_direc == MOTOR_REV)) //反向回到磁条范围起点后,复位
{
- loop_flag = 3; //2ν3
- tmc5160_operate(MOTOR_STOP,0); //ֹͣ
- while(busy_flag == 1) //ֹͣ
+ loop_flag = 3; //2阶段结束,进入3阶段
+ tmc5160_operate(MOTOR_STOP,0); //立即停止
+ while(busy_flag == 1) //加速停止动作
{
tmc5160_operate(MOTOR_STOP,0);
@@ -678,13 +678,13 @@ void mov_loop1(void)
if(stop_cnt > 10000)
{
stop_cnt = 0;
- break; //ֹ
+ break; //防止卡死
}
if(busy_flag == 0) stop_cnt = 0;
}
- Motor_Run = 2; //תλģʽ
+ Motor_Run = 2; //跳转至复位模式
Runmotor_step = 0;
}
@@ -693,14 +693,14 @@ void mov_loop1(void)
break;
case 6 :
{
- if( (ocin1 == 0) && (motor_direc != MOTOR_POS) ) //жǷʼλ
+ if( (ocin1 == 0) && (motor_direc != MOTOR_POS) ) //判断是否到达始限位
{
motor_direc = MOTOR_POS;
Runmotor_step = 0;
Motor_Run = 0;
break;
}
- if( (ocin2 == 0) && (motor_direc != MOTOR_REV) ) //жǷλ
+ if( (ocin2 == 0) && (motor_direc != MOTOR_REV) ) //判断是否到达终限位
{
motor_direc = MOTOR_REV;
Runmotor_step = 0;
@@ -708,17 +708,17 @@ void mov_loop1(void)
break;
}
- Runmotor_step = 2; //case 2 - 6 ֮ѭ2˶6λ
+ Runmotor_step = 2; //在case 2 - 6 之间循环,2运动,6限位
}
break;
case 7 :
{
- if(it_10ms_flag) //1msʱ־
+ if(it_10ms_flag) //检查1ms定时标志
{
- it_10ms_flag = 0; //ʱ־
+ it_10ms_flag = 0; //定时标志清零
Runmotor_Nums++;
}
- if((Runmotor_Nums/100) >= Run_Stop) //ʱ
+ if((Runmotor_Nums/100) >= Run_Stop) //时间
{
Runmotor_step = 3;
Runmotor_Nums = 0;
@@ -734,9 +734,9 @@ void mov_loop1(void)
}
uint32_t V_data = 0;
-signed int _data = 0,vol_data = 0; //OLEDʾ
-char start_check = 0; //ڶλʼ֡±
-uint16_t send_xa = 0; //ڷ͵ǰλ
+signed int _data = 0,vol_data = 0; //用于OLED显示
+char start_check = 0; //用于定位起始帧的下标
+uint16_t send_xa = 0; //用于发送当前位置
void get_state(void)
{
motor_data[1] = Motor_Run;
@@ -744,29 +744,29 @@ void get_state(void)
if(rx_data2[start_check] != 0x05)
{
- start_check = (start_check + 1)*(start_check <5); //λʼ֡
+ start_check = (start_check + 1)*(start_check <5); //定位起始帧
}
else
{
- motor_data[4] = rx_data2[ (start_check + 1) - 6*( (start_check + 1) > 5) ]; //ʼ֡λ㼟Ӧģķֵ
+ motor_data[4] = rx_data2[ (start_check + 1) - 6*( (start_check + 1) > 5) ]; //根据起始帧所在位置,记录磁感应模块的反馈值
motor_data[5] = rx_data2[ (start_check + 2) - 6*( (start_check + 2) > 5) ];
motor_data[6] = rx_data2[ (start_check + 3) - 6*( (start_check + 3) > 5) ];
motor_data[7] = rx_data2[ (start_check + 4) - 6*( (start_check + 4) > 5) ];
}
- /*߶*/
-// motor_data[8] = ((uint16_t)(X_ads1220*10) & 0xff00)>> 8; //ȸ8λ
-// motor_data[9] = (uint16_t)(X_ads1220*10) & 0x00ff; //ȵ8λ
+ /*电阻尺读数*/
+// motor_data[8] = ((uint16_t)(X_ads1220*10) & 0xff00)>> 8; //磁条长度高8位
+// motor_data[9] = (uint16_t)(X_ads1220*10) & 0x00ff; //磁条长度低8位
- /*ڲ*/
- TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //ȡʵλXACTUAL
+ /*电机内部编码*/
+ TMC5160_SPIReadInt(XACTUAL_ADDR,XA); //读取实际位置XACTUAL
XA_32 = Raw_32(XA);
send_xa = ((XA_32 - first_xa_32) * 100) / 10240;
- motor_data[8] = ((uint16_t)send_xa & 0xff00)>> 8; //ȸ8λ
- motor_data[9] = ((uint16_t)send_xa & 0x00ff); //ȵ8λ
+ motor_data[8] = ((uint16_t)send_xa & 0xff00)>> 8; //磁条长度高8位
+ motor_data[9] = ((uint16_t)send_xa & 0x00ff); //磁条长度低8位
- if( ocin1 == 0 )//жǷʼλ
+ if( ocin1 == 0 )//判断是否到达始限位
motor_data[3] = 1;
else if(ocin2 == 0)
motor_data[3] = 2;
@@ -777,7 +777,7 @@ void get_state(void)
void get_magnetv(void)
{
V_data = motor_data[4]*0xffffff + motor_data[5]*0xffff + motor_data[6]*0xff + motor_data[7];
- //ADSתΪʵʵѹֵ
+ //ADS数据转换为实际电压值
if(V_data & 0x00800000)
{
_data = 0xffffffff - V_data;
diff --git a/App/Src/myLib.c b/App/Src/myLib.c
index 09cc0bd..b108353 100644
--- a/App/Src/myLib.c
+++ b/App/Src/myLib.c
@@ -383,6 +383,15 @@ const char Hzk[][32]=
{0xF0,0x00,0xFF,0x08,0x10,0xC0,0x5F,0x55,0xD5,0x55,0xD5,0x55,0x5F,0xC0,0x00,0x00,
0x00,0x00,0xFF,0x00,0x80,0x83,0x4A,0x5A,0x2B,0x2A,0x2B,0x5A,0x4A,0x83,0x80,0x00},/*"",60*/
+
+ {0x00,0x10,0x88,0xC4,0x33,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
+ 0x02,0x01,0x00,0xFF,0x00,0x00,0xFF,0x40,0x20,0x03,0x0C,0x14,0x22,0x41,0x40,0x00},/*"",61*/
+
+ {0xC8,0xB8,0x8F,0xE8,0x88,0x88,0x80,0x48,0x28,0x09,0x0E,0x08,0x28,0x48,0x88,0x00,
+ 0x08,0x18,0x08,0xFF,0x04,0x04,0x80,0x80,0x43,0x2C,0x10,0x2C,0x43,0x80,0x80,0x00},/*"",62*/
+
+ {0x40,0x40,0x42,0xCC,0x00,0x10,0x92,0x92,0x92,0xFF,0x91,0x91,0x91,0x10,0x10,0x00,
+ 0x00,0x40,0x20,0x1F,0x20,0x40,0x5F,0x48,0x48,0x48,0x48,0x48,0x5F,0x40,0x40,0x00},/*"",63*/
// {0x00,0x80,0x40,0x20,0x18,0x06,0x80,0x00,0x07,0x18,0x20,0x40,0x80,0x00,0x00,0x00,
// 0x01,0x00,0x20,0x70,0x28,0x26,0x21,0x20,0x20,0x24,0x38,0x60,0x00,0x01,0x01,0x00},/*"?",0*/
diff --git a/App/Src/oled2.c b/App/Src/oled2.c
index 7a30dc3..1862733 100644
--- a/App/Src/oled2.c
+++ b/App/Src/oled2.c
@@ -1495,59 +1495,218 @@ void OLED_MenuTest(void)
}
char disp_new = 0;
-uint8_t speed_select = 1; //[0 1 2]->[慢、中、快]
+uint8_t speed_select = 2; //[0 1 2 3 4]->[很慢、较慢、适中、较快、很快]
uint8_t speed_select_prv = 1;
uint8_t speed_ensure = 0;
+uint8_t direc_select = 0;
+uint8_t direc_select_prv = 0;
void OLED_Menu_New(void)
{
switch (disp_new)
{
- case 0:
+ case 0: //初始化
{
OLED_Clear();
- disp_new++;
- }
- break;
- case 1:
- {
+
OLED_ShowCN(0,0,56,0); //正常“匀”,第0页
OLED_ShowCN(32,0,57,0); //正常“速”,第0页
OLED_ShowCN(64,0,5,0); //正常“测”,第0页
OLED_ShowCN(96,0,58,0); //正常“试”,第0页
- OLED_ShowCN(0,4,57,0); //正常“速”,第4页
- OLED_ShowCN(24,4,17,0); //正常“度”,第4页
-
- if(speed_select == 0) OLED_ShowCN(56,4,60,1); //反显“慢”,第4页
- if(speed_select == 1) OLED_ShowCN(56,4,41,1); //反显“中”,第4页
- if(speed_select == 2) OLED_ShowCN(56,4,59,1); //反显“快”,第4页
- speed_select_prv = speed_select;
+ OLED_ShowCN(0,2,57,0); //正常“速”,第2页
+ OLED_ShowCN(20,2,17,0); //正常“度”,第2页
+ speed_set(MEDIUM_SPEED);
+
+ OLED_ShowCN(0,4,32,0); //正常“方”,第4页
+ OLED_ShowCN(20,4,33,0); //正常“向”,第4页
disp_new++;
}
break;
- case 2:
+
+ case 1: //显示内容初始化
+ {
+ switch (speed_select)
+ {
+ case 0:
+ {
+ OLED_ShowCN(50,2,61,1); //反显“很”,第2页
+ OLED_ShowCN(66,2,60,1); //反显“慢”,第2页
+ }
+ break;
+
+ case 1:
+ {
+ OLED_ShowCN(50,2,62,1); //反显“较”,第2页
+ OLED_ShowCN(66,2,60,1); //反显“慢”,第2页
+ }
+ break;
+
+ case 2:
+ {
+ OLED_ShowCN(50,2,63,1); //反显“适”,第2页
+ OLED_ShowCN(66,2,41,1); //反显“中”,第2页
+ }
+ break;
+
+ case 3:
+ {
+ OLED_ShowCN(50,2,62,1); //反显“较”,第2页
+ OLED_ShowCN(66,2,59,1); //反显“快”,第2页
+ }
+ break;
+
+ case 4:
+ {
+ OLED_ShowCN(50,2,61,1); //反显“很”,第2页
+ OLED_ShowCN(66,2,59,1); //反显“快”,第2页
+ }
+ break;
+
+ default:
+ break;
+ }
+ speed_select_prv = speed_select;
+
+ if(direc_select == 0) OLED_ShowCN(50,4,34,1); //反显“正”,第4页
+ if(direc_select == 1) OLED_ShowCN(50,4,35,1); //反显“反”,第4页
+ direc_select_prv = direc_select;
+
+ disp_new++;
+ }
+ break;
+
+ case 2: //菜单选择,确定后取消反显
{
if(speed_select != speed_select_prv)
{
- if(speed_select == 0) OLED_ShowCN(56,4,60,1); //反显“慢”,第4页
- if(speed_select == 1) OLED_ShowCN(56,4,41,1); //反显“中”,第4页
- if(speed_select == 2) OLED_ShowCN(56,4,59,1); //反显“快”,第4页
+ switch (speed_select)
+ {
+ case 0:
+ {
+ OLED_ShowCN(50,2,61,1); //反显“很”,第2页
+ OLED_ShowCN(66,2,60,1); //反显“慢”,第2页
+ }
+ break;
+
+ case 1:
+ {
+ OLED_ShowCN(50,2,62,1); //反显“较”,第2页
+ OLED_ShowCN(66,2,60,1); //反显“慢”,第2页
+ }
+ break;
+
+ case 2:
+ {
+ OLED_ShowCN(50,2,63,1); //反显“适”,第2页
+ OLED_ShowCN(66,2,41,1); //反显“中”,第2页
+ }
+ break;
+
+ case 3:
+ {
+ OLED_ShowCN(50,2,62,1); //反显“较”,第2页
+ OLED_ShowCN(66,2,59,1); //反显“快”,第2页
+ }
+ break;
+
+ case 4:
+ {
+ OLED_ShowCN(50,2,61,1); //反显“很”,第2页
+ OLED_ShowCN(66,2,59,1); //反显“快”,第2页
+ }
+ break;
+
+ default:
+ break;
+ }
speed_select_prv = speed_select;
}
+ if(direc_select != direc_select_prv)
+ {
+ if(direc_select == 0) OLED_ShowCN(50,4,34,1); //反显“正”,第4页
+ if(direc_select == 1) OLED_ShowCN(50,4,35,1); //反显“反”,第4页
+ direc_select_prv = direc_select;
+ }
+
if(speed_ensure == 1)
{
speed_ensure = 0;
- if(speed_select == 0) OLED_ShowCN(56,4,59,0); //正常“慢”,第4页
- if(speed_select == 1) OLED_ShowCN(56,4,41,0); //正常“中”,第4页
- if(speed_select == 2) OLED_ShowCN(56,4,60,0); //正常“快”,第4页
+ switch (speed_select)
+ {
+ case 0:
+ {
+ OLED_ShowCN(50,2,61,0); //正常“很”,第2页
+ OLED_ShowCN(66,2,60,0); //正常“慢”,第2页
+ speed_set(SLOW_SPEED);
+ }
+ break;
+
+ case 1:
+ {
+ OLED_ShowCN(50,2,62,0); //正常“较”,第2页
+ OLED_ShowCN(66,2,60,0); //正常“慢”,第2页
+ speed_set(MEDIUM_SLOW_SPEED);
+ }
+ break;
+
+ case 2:
+ {
+ OLED_ShowCN(50,2,63,0); //正常“适”,第2页
+ OLED_ShowCN(66,2,41,0); //正常“中”,第2页
+ speed_set(MEDIUM_SPEED);
+ }
+ break;
+
+ case 3:
+ {
+ OLED_ShowCN(50,2,62,0); //正常“较”,第2页
+ OLED_ShowCN(66,2,59,0); //正常“快”,第2页
+ speed_set(MEDIUM_FAST_SPEED);
+ }
+ break;
+
+ case 4:
+ {
+ OLED_ShowCN(50,2,61,0); //正常“很”,第2页
+ OLED_ShowCN(66,2,59,0); //正常“快”,第2页
+ speed_set(FAST_SPEED);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if(direc_select == 0) OLED_ShowCN(50,4,34,0); //正常“正”,第4页
+ if(direc_select == 1) OLED_ShowCN(50,4,35,0); //正常“反”,第4页
+
+ disp_new++;
}
}
break;
-
+
+ case 3: //控制电机
+ {
+ uniform_motion();
+
+ if(speed_ensure == 1) //电机停止
+ {
+ tmc5160_operate(0,0);
+
+ GREEN_ON;
+ BLUE_ON;
+
+ speed_ensure = 0;
+
+ disp_new = 1;
+ }
+ }
+ break;
+
default:
break;
}
diff --git a/App/Src/uniform.c b/App/Src/uniform.c
index 406b654..3fbf53c 100644
--- a/App/Src/uniform.c
+++ b/App/Src/uniform.c
@@ -1,4 +1,151 @@
+/*
+ * @Author: wujunchao 24472040@qq.com
+ * @Date: 2024-10-14 14:42:21
+ * @LastEditors: wujunchao 24472040@qq.com
+ * @LastEditTime: 2024-10-15 17:15:02
+ * @FilePath: \mfps\App\Src\uniform.c
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
#include "uniform.h"
//2024_10_14新增功能:匀速往/返运动,要求速度可调
//为避免与旧程序冲突,使用↑↓组合键对[OLED,Key,LED]程序进行切换
+uint32_t uniform_speed;
+uint32_t uniform_speed_prv;
+uint8_t limit_old = 0;
+
+void uniform_motion(void)
+{
+ switch (uniform_limit(200, 1800))
+ {
+ case 0:
+ {
+ if(limit_old != 0)
+ {
+ OLED_ShowString(0,6,"-----",16,0);
+ OLED_ShowString(64,6,"-----",16,0);
+
+ limit_old = 0;
+ }
+
+ }
+ break;
+
+ case 1:
+ {
+ if(limit_old != 1)
+ {
+ OLED_ShowCN(0,6,20,0); //正常“到”,第6页
+ OLED_ShowCN(20,6,21,0); //正常“达”,第6页
+
+ GREEN_OFF;
+ BLUE_ON;
+
+ limit_old = 1;
+ }
+ disp_new = 1;
+ return;
+ }
+
+ case 2:
+ {
+ if(limit_old != 2)
+ {
+ OLED_ShowCN(64,6,20,0); //正常“到”,第6页
+ OLED_ShowCN(84,6,21,0); //正常“达”,第6页
+
+ GREEN_ON;
+ BLUE_OFF;
+
+ limit_old = 2;
+ }
+ disp_new = 1;
+ return;
+ }
+
+ default:
+ break;
+ }
+
+ switch (direc_select)
+ {
+ case 0: //正向运动
+ {
+ tmc5160_operate(1,51200*60);
+
+ if(it_500ms_flag)
+ {
+ it_500ms_flag = 0;
+
+ GREEN_TOG;
+ BLUE_OFF;
+ }
+ }
+ break;
+
+ case 1: //反向运动
+ {
+ tmc5160_operate(2,51200*60);
+
+ if(it_500ms_flag)
+ {
+ it_500ms_flag = 0;
+
+ GREEN_OFF;
+ BLUE_TOG;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+char uniform_limit(float start, float end)
+{
+ if( ( ocin1 == 0 )&&( direc_select != 0 ) )
+ {
+ //电机停止
+ tmc5160_operate(0,0);
+ return 1;
+ }
+ if( ( ocin2 == 0 )&&( direc_select != 1 ) )
+ {
+ //电机停止
+ tmc5160_operate(0,0);
+ return 2;
+ }
+
+ if( ( X_ads1220 <= start )&&( direc_select != 0 ) )
+ {
+ //电机停止
+ tmc5160_operate(0,0);
+ return 1;
+ }
+ if( ( X_ads1220 >= end )&&( direc_select != 1 ) )
+ {
+ //电机停止
+ tmc5160_operate(0,0);
+ return 2;
+ }
+
+ return 0;
+}
+
+void speed_set(uint32_t uni_speed)
+{
+ if(uni_speed != uniform_speed)
+ {
+ uniform_speed =uni_speed;
+ uniform_speed_prv = uniform_speed;
+
+ //VMAX
+ TMC5160_SPIWriteInt(VMAX_ADDR, uniform_speed,1);
+ //V1
+ TMC5160_SPIWriteInt(V1_ADDR, uniform_speed/2,1);
+ }
+}
+
+
+
diff --git a/MDK-ARM/mfps.uvguix.吴俊潮 b/MDK-ARM/mfps.uvguix.吴俊潮
index 066e0e9..0d544e0 100644
--- a/MDK-ARM/mfps.uvguix.吴俊潮
+++ b/MDK-ARM/mfps.uvguix.吴俊潮
@@ -93,8 +93,8 @@
2
3
- -1
- -1
+ -32000
+ -32000
-1
@@ -110,8 +110,8 @@
0
- 1544
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A00000005000000010000006F463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4170705C5372635C756E69666F726D2E630000000009756E69666F726D2E6300000000C5D4F200FFFFFFFF6F463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4170705C496E635C756E69666F726D2E680000000009756E69666F726D2E6800000000FFDC7800FFFFFFFF6B463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4170705C5372635C6B65792E6300000000056B65792E6300000000BECEA100FFFFFFFF70463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000F0A0A100FFFFFFFF7B463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4D444B2D41524D5C737461727475705F73746D33326631303378652E730000000015737461727475705F73746D33326631303378652E7300000000BCA8E100FFFFFFFF68463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C5372635C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFF6B463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4170705C5372635C6170702E6300000000056170702E6300000000F7B88600FFFFFFFF6D463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4170705C5372635C6F6C6564322E6300000000076F6C6564322E6300000000D9ADC200FFFFFFFF6D463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4170705C5372635C55617274312E63000000000755617274312E6300000000A5C2D700FFFFFFFF6D463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C323032342E30352E32375C6D6670735C4170705C496E635C6F6C6564322E6800000000076F6C6564322E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000074F9FFFF660000000000000012030000
+ 1438
+ 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000040000000100000064463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C756E69666F726D2E630000000009756E69666F726D2E6300000000C5D4F200FFFFFFFF64463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C496E635C756E69666F726D2E680000000009756E69666F726D2E6800000000FFDC7800FFFFFFFF60463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6B65792E6300000000056B65792E6300000000BECEA100FFFFFFFF65463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000F0A0A100FFFFFFFF5D463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C5372635C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFF60463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6170702E6300000000056170702E6300000000F7B88600FFFFFFFF62463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C6F6C6564322E6300000000076F6C6564322E6300000000D9ADC200FFFFFFFF62463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C496E635C6F6C6564322E6800000000076F6C6564322E6800000000B3A6BE00FFFFFFFF64463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4170705C5372635C746D63353136302E630000000009746D63353136302E6300000000EAD6A300FFFFFFFF70463A5C4465736B746F705C576F726B5C30305F50726F6A656374735C30315F4D61676E65745F466565646261636B5F506F736974696F6E5F53797374656D5C30315F434F44455C30315F4E65775C6D6670735C4D444B2D41524D5C737461727475705F73746D33326631303378652E730000000015737461727475705F73746D33326631303378652E7300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000074F9FFFF660000000000000012030000
@@ -1822,7 +1822,7 @@
Build
968
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000046D66707396000000000000000100046D667073000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000046D66707396000000000000000100046D667073000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -1838,7 +1838,7 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3579,7 +3579,7 @@
Debug
2362
- 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3603,48 +3603,39 @@
0
100
- 5
+ 4
..\App\Src\uniform.c
- 0
- 1
- 5
+ 26
+ 56
+ 78
1
0
../App/Inc/uniform.h
- 0
+ 34
1
- 10
+ 14
1
0
..\App\Src\key.c
- 27
- 291
- 311
+ 22
+ 290
+ 301
1
0
../Src/stm32f1xx_it.c
- 54
- 393
- 419
- 1
-
- 0
-
-
- startup_stm32f103xe.s
- 0
- 133
- 148
+ 100
+ 384
+ 406
1
0
@@ -3660,27 +3651,18 @@
..\App\Src\app.c
- 8
- 61
- 84
+ 5
+ 16
+ 40
1
0
..\App\Src\oled2.c
- 68
- 1498
- 1533
- 1
-
- 0
-
-
- ..\App\Src\Uart1.c
- 1
- 486
- 511
+ 0
+ 1550
+ 1585
1
0
@@ -3694,6 +3676,24 @@
0
+
+ ..\App\Src\tmc5160.c
+ 30
+ 227
+ 252
+ 1
+
+ 0
+
+
+ startup_stm32f103xe.s
+ 0
+ 133
+ 148
+ 1
+
+ 0
+
diff --git a/MDK-ARM/mfps.uvoptx b/MDK-ARM/mfps.uvoptx
index 189269d..743eb26 100644
--- a/MDK-ARM/mfps.uvoptx
+++ b/MDK-ARM/mfps.uvoptx
@@ -295,6 +295,11 @@
1
old2new_flag
+
+ 29
+ 1
+ tick_check
+
0
diff --git a/MDK-ARM/mfps/ads1220.crf b/MDK-ARM/mfps/ads1220.crf
index 6819722..c8dbb76 100644
Binary files a/MDK-ARM/mfps/ads1220.crf and b/MDK-ARM/mfps/ads1220.crf differ
diff --git a/MDK-ARM/mfps/ads1220.d b/MDK-ARM/mfps/ads1220.d
index e52fa57..6d2ed16 100644
--- a/MDK-ARM/mfps/ads1220.d
+++ b/MDK-ARM/mfps/ads1220.d
@@ -44,9 +44,11 @@ mfps\ads1220.o: ../Inc/usart.h
mfps\ads1220.o: ../App/Inc/Uart1.h
mfps\ads1220.o: ../Inc/gpio.h
mfps\ads1220.o: ../App/Inc/key.h
+mfps\ads1220.o: ../App/Inc/app.h
mfps\ads1220.o: ../App/Inc/motor.h
mfps\ads1220.o: ../App/Inc/delay.h
mfps\ads1220.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h
mfps\ads1220.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h
mfps\ads1220.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\string.h
mfps\ads1220.o: ../App/Inc/flash.h
+mfps\ads1220.o: ../App/Inc/uniform.h
diff --git a/MDK-ARM/mfps/ads1220.o b/MDK-ARM/mfps/ads1220.o
index c488784..3e40f1c 100644
Binary files a/MDK-ARM/mfps/ads1220.o and b/MDK-ARM/mfps/ads1220.o differ
diff --git a/MDK-ARM/mfps/app.crf b/MDK-ARM/mfps/app.crf
index bbe15f0..6c7681e 100644
Binary files a/MDK-ARM/mfps/app.crf and b/MDK-ARM/mfps/app.crf differ
diff --git a/MDK-ARM/mfps/app.d b/MDK-ARM/mfps/app.d
index 41d5843..8c227c7 100644
--- a/MDK-ARM/mfps/app.d
+++ b/MDK-ARM/mfps/app.d
@@ -44,9 +44,11 @@ mfps\app.o: ../Inc/usart.h
mfps\app.o: ../App/Inc/Uart1.h
mfps\app.o: ../Inc/gpio.h
mfps\app.o: ../App/Inc/key.h
+mfps\app.o: ../App/Inc/app.h
mfps\app.o: ../App/Inc/motor.h
mfps\app.o: ../App/Inc/delay.h
mfps\app.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h
mfps\app.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h
mfps\app.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\string.h
mfps\app.o: ../App/Inc/flash.h
+mfps\app.o: ../App/Inc/uniform.h
diff --git a/MDK-ARM/mfps/app.o b/MDK-ARM/mfps/app.o
index 03714b4..461013a 100644
Binary files a/MDK-ARM/mfps/app.o and b/MDK-ARM/mfps/app.o differ
diff --git a/MDK-ARM/mfps/delay.crf b/MDK-ARM/mfps/delay.crf
index 00d3c77..50c9253 100644
Binary files a/MDK-ARM/mfps/delay.crf and b/MDK-ARM/mfps/delay.crf differ
diff --git a/MDK-ARM/mfps/delay.d b/MDK-ARM/mfps/delay.d
index b23dec9..1be5b31 100644
--- a/MDK-ARM/mfps/delay.d
+++ b/MDK-ARM/mfps/delay.d
@@ -45,8 +45,10 @@ mfps\delay.o: ../Inc/usart.h
mfps\delay.o: ../App/Inc/Uart1.h
mfps\delay.o: ../Inc/gpio.h
mfps\delay.o: ../App/Inc/key.h
+mfps\delay.o: ../App/Inc/app.h
mfps\delay.o: ../App/Inc/motor.h
mfps\delay.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h
mfps\delay.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h
mfps\delay.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\string.h
mfps\delay.o: ../App/Inc/flash.h
+mfps\delay.o: ../App/Inc/uniform.h
diff --git a/MDK-ARM/mfps/delay.o b/MDK-ARM/mfps/delay.o
index 8703353..e1dd96a 100644
Binary files a/MDK-ARM/mfps/delay.o and b/MDK-ARM/mfps/delay.o differ
diff --git a/MDK-ARM/mfps/key.crf b/MDK-ARM/mfps/key.crf
index 28de094..452c859 100644
Binary files a/MDK-ARM/mfps/key.crf and b/MDK-ARM/mfps/key.crf differ
diff --git a/MDK-ARM/mfps/key.d b/MDK-ARM/mfps/key.d
index 235c7ff..7ce1b31 100644
--- a/MDK-ARM/mfps/key.d
+++ b/MDK-ARM/mfps/key.d
@@ -1,5 +1,7 @@
mfps\key.o: ..\App\Src\key.c
mfps\key.o: ../App/Inc/key.h
+mfps\key.o: ../App/Inc/app.h
+mfps\key.o: ../App/Inc/MyLib.h
mfps\key.o: ../Inc/main.h
mfps\key.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h
mfps\key.o: ../Inc/stm32f1xx_hal_conf.h
@@ -31,8 +33,6 @@ mfps\key.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h
mfps\key.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h
mfps\key.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h
mfps\key.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h
-mfps\key.o: ../App/Inc/app.h
-mfps\key.o: ../App/Inc/MyLib.h
mfps\key.o: ../App/Inc/m1820.h
mfps\key.o: ../App/Inc/oled2.h
mfps\key.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\inttypes.h
@@ -44,9 +44,12 @@ mfps\key.o: ../Inc/tim.h
mfps\key.o: ../Inc/usart.h
mfps\key.o: ../App/Inc/Uart1.h
mfps\key.o: ../Inc/gpio.h
+mfps\key.o: ../App/Inc/key.h
mfps\key.o: ../App/Inc/motor.h
mfps\key.o: ../App/Inc/delay.h
mfps\key.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h
mfps\key.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h
mfps\key.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\string.h
mfps\key.o: ../App/Inc/flash.h
+mfps\key.o: ../App/Inc/uniform.h
+mfps\key.o: ../App/Inc/app.h
diff --git a/MDK-ARM/mfps/key.o b/MDK-ARM/mfps/key.o
index b0773ae..692e708 100644
Binary files a/MDK-ARM/mfps/key.o and b/MDK-ARM/mfps/key.o differ
diff --git a/MDK-ARM/mfps/m1820.crf b/MDK-ARM/mfps/m1820.crf
index afbf276..85aff39 100644
Binary files a/MDK-ARM/mfps/m1820.crf and b/MDK-ARM/mfps/m1820.crf differ
diff --git a/MDK-ARM/mfps/m1820.d b/MDK-ARM/mfps/m1820.d
index aea48b1..271a6de 100644
--- a/MDK-ARM/mfps/m1820.d
+++ b/MDK-ARM/mfps/m1820.d
@@ -44,9 +44,11 @@ mfps\m1820.o: ../Inc/usart.h
mfps\m1820.o: ../App/Inc/Uart1.h
mfps\m1820.o: ../Inc/gpio.h
mfps\m1820.o: ../App/Inc/key.h
+mfps\m1820.o: ../App/Inc/app.h
mfps\m1820.o: ../App/Inc/motor.h
mfps\m1820.o: ../App/Inc/delay.h
mfps\m1820.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h
mfps\m1820.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h
mfps\m1820.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\string.h
mfps\m1820.o: ../App/Inc/flash.h
+mfps\m1820.o: ../App/Inc/uniform.h
diff --git a/MDK-ARM/mfps/m1820.o b/MDK-ARM/mfps/m1820.o
index 486fa7f..cc2a8df 100644
Binary files a/MDK-ARM/mfps/m1820.o and b/MDK-ARM/mfps/m1820.o differ
diff --git a/MDK-ARM/mfps/main.crf b/MDK-ARM/mfps/main.crf
index 00f0a64..5b55352 100644
Binary files a/MDK-ARM/mfps/main.crf and b/MDK-ARM/mfps/main.crf differ
diff --git a/MDK-ARM/mfps/main.d b/MDK-ARM/mfps/main.d
index 8700c10..0cf6fde 100644
--- a/MDK-ARM/mfps/main.d
+++ b/MDK-ARM/mfps/main.d
@@ -45,9 +45,11 @@ mfps\main.o: ../App/Inc/ads1220.h
mfps\main.o: ../App/Inc/tmc5160.h
mfps\main.o: ../App/Inc/Uart1.h
mfps\main.o: ../App/Inc/key.h
+mfps\main.o: ../App/Inc/app.h
mfps\main.o: ../App/Inc/motor.h
mfps\main.o: ../App/Inc/delay.h
mfps\main.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdio.h
mfps\main.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\stdlib.h
mfps\main.o: E:\Softwares\Keil_v5\ARM\ARMCC\Bin\..\include\string.h
mfps\main.o: ../App/Inc/flash.h
+mfps\main.o: ../App/Inc/uniform.h
diff --git a/MDK-ARM/mfps/main.o b/MDK-ARM/mfps/main.o
index 1b98669..4d6a6ad 100644
Binary files a/MDK-ARM/mfps/main.o and b/MDK-ARM/mfps/main.o differ
diff --git a/MDK-ARM/mfps/mfps.axf b/MDK-ARM/mfps/mfps.axf
index 8a40507..7c6cf83 100644
Binary files a/MDK-ARM/mfps/mfps.axf and b/MDK-ARM/mfps/mfps.axf differ
diff --git a/MDK-ARM/mfps/mfps.build_log.htm b/MDK-ARM/mfps/mfps.build_log.htm
index 82e578d..2a7d36b 100644
--- a/MDK-ARM/mfps/mfps.build_log.htm
+++ b/MDK-ARM/mfps/mfps.build_log.htm
@@ -21,15 +21,15 @@ Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.2.0.0
Dialog DLL: TCM.DLL V1.56.4.0
Project:
-F:\Desktop\Work\00_Projects\01_Magnet_Feedback_Position_System\01_CODE\01_New\2024.05.27\mfps\MDK-ARM\mfps.uvprojx
+F:\Desktop\Work\00_Projects\01_Magnet_Feedback_Position_System\01_CODE\01_New\mfps\MDK-ARM\mfps.uvprojx
Project File Date: 10/14/2024
Output:
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'E:\Softwares\Keil_v5\ARM\ARMCC\Bin'
Build target 'mfps'
-compiling oled2.c...
+compiling uniform.c...
linking...
-Program Size: Code=36130 RO-data=4578 RW-data=468 ZI-data=5204
+Program Size: Code=37014 RO-data=4674 RW-data=492 ZI-data=5204
FromELF: creating hex file...
"mfps\mfps.axf" - 0 Error(s), 0 Warning(s).
@@ -54,7 +54,7 @@ Package Vendor: Keil
Collection of Component Files used:
* Component: ARM::CMSIS:CORE@5.6.0
-Build Time Elapsed: 00:00:02
+Build Time Elapsed: 00:00:01