立下的flag

作为一名行业新手,作者计划每日撰写优快云博客,记录在前端项目中遇到的问题及解决方案,涵盖持续两个月的前端与后台挑战,以及未来关于框架学习的心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我这个行业小白第一次写优快云博客,我打算这段时间每天都要留点时间来写博客,我先写关于我在写前端项目的时候碰到各种问题和解决办法,这个会持续到2个月,后台也会持续2个月,框架还在学,下个学期就可以写关于框架的各种问题了

这是我的另一个笔记本,记录了关于我碰到的各种问题,我希望我可以在写博客和敲代码过程中成长。

/* * limit.c * * Created on: Apr 13, 2018 * Author: Administrator */ #include "limit.h" extern uint HighPos; // 最大高度 extern uint LowPos; // 最低高度 extern uchar M_Num; extern uchar M_Flag; extern PWM_M PWM_M1; extern PWM_M PWM_M2; extern HALL_M HALL_M1; extern HALL_M HALL_M2; extern PID_M PID_M1; extern PID_M PID_M2; extern uchar Hall_Buffer; // 停止缓冲脉冲数 extern uint Hall_Slow; // 到限位前减速 extern uchar Hall_BufferX2; // 3倍停止缓冲脉冲数 extern uint Hall_SlowX2; // 2倍到限位前减速 extern uchar Get_hall_half; extern uint M_I_Delay_cnt; void Limit_Slow(uchar m_flag, uint mhalldata,PID_M *LM_PID) //上下限位到达提前减速 { if((m_flag&0x0f)!=0) // 柱上升 { if(mhalldata > HighPos - Hall_Slow) { M_I_Delay_cnt = 0; // 进入慢停止后不再执行遇阻回退 LM_PID->get_halltemp = Get_hall_half; } } if((m_flag&0xf0)!=0) // 柱下降 { if(mhalldata < LowPos + Hall_Slow) { M_I_Delay_cnt = 0; // 进入慢停止后不再执行遇阻回退 LM_PID->get_halltemp = Get_hall_half; } } } uchar Get_Limit(uchar m_flag,uint mhalldata) //获取上下限位的标记 { uchar mpos_flag = 0; if((m_flag&0x0f)!=0) // 柱上升 { if(mhalldata > HighPos) { mpos_flag = mpos_flag|0x02; } } if((m_flag&0xf0)!=0) // 柱下降 { if(mhalldata < LowPos + Hall_Buffer) { mpos_flag = mpos_flag|0x20; } } return (mpos_flag); } uchar Limit_Off(uchar mpos_flag,uchar m_flag) // 到达限位后停止判断 { uchar pwm_step = 0; if((m_flag&0x0f)!=0) // 柱上升 { if((mpos_flag&0x02)==0x02) //到达上限位 { pwm_step = 5; // 进入慢停止 } } if((m_flag&0xf0)!=0) // 柱下降 { if((mpos_flag&0x20)==0x20) //到达上限位 { pwm_step = 5; // 进入慢停止 } } return (pwm_step); } void DoLimitPos(void) // 上下限位执行 { uchar pwm_step_temp = 0; if(M_Num>=1) // M1上下限位 { if((M_Flag&0x11)!=0) { HALL_M1.pos_flag = Get_Limit(M_Flag,HALL_M1.halldata); // 获取上下限位的标记 Limit_Slow(M_Flag, HALL_M1.halldata,&PID_M1); // 上下限位到达提前减速 pwm_step_temp = Limit_Off(HALL_M1.pos_flag,M_Flag); // 到达限位后停止
最新发布
03-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值