117 lines
2.0 KiB
C
117 lines
2.0 KiB
C
#include "calc_lib.h"
|
||
#include <stdint.h>
|
||
#include "bsp/struct_typedef.h"
|
||
|
||
//<><CEA2><EFBFBD><EFBFBD>ʱ
|
||
void user_delay_us(uint16_t us)
|
||
{
|
||
for(; us > 0; us--)
|
||
{
|
||
for(uint8_t i = 50; i > 0; i--)
|
||
{
|
||
;
|
||
}
|
||
}
|
||
}
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||
void user_delay_ms(uint16_t ms)
|
||
{
|
||
for(; ms > 0; ms--)
|
||
{
|
||
user_delay_us(1000);
|
||
}
|
||
}
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>
|
||
void abs_limit_fp(fp32 *num, fp32 Limit)
|
||
{
|
||
if (*num > Limit)
|
||
{
|
||
*num = Limit;
|
||
}
|
||
else if (*num < -Limit)
|
||
{
|
||
*num = -Limit;
|
||
}
|
||
}
|
||
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>
|
||
void abs_limit_int(int64_t *num, int64_t Limit)
|
||
{
|
||
if (*num > Limit)
|
||
{
|
||
*num = Limit;
|
||
}
|
||
else if (*num < -Limit)
|
||
{
|
||
*num = -Limit;
|
||
}
|
||
}
|
||
|
||
//ѭ<><D1AD><EFBFBD><EFBFBD>
|
||
fp32 loop_fp32_constrain(fp32 Input, fp32 minValue, fp32 maxValue)
|
||
{
|
||
if (maxValue < minValue)
|
||
{
|
||
return Input;
|
||
}
|
||
|
||
if (Input > maxValue)
|
||
{
|
||
fp32 len = maxValue - minValue;
|
||
while (Input > maxValue)
|
||
{
|
||
Input -= len;
|
||
}
|
||
}
|
||
else if (Input < minValue)
|
||
{
|
||
fp32 len = maxValue - minValue;
|
||
while (Input < minValue)
|
||
{
|
||
Input += len;
|
||
}
|
||
}
|
||
return Input;
|
||
}
|
||
|
||
int32_t loop_int32_constrain(int32_t Input, int32_t minValue, int32_t maxValue)
|
||
{
|
||
if (maxValue < minValue)
|
||
{
|
||
return Input;
|
||
}
|
||
if (Input > maxValue)
|
||
{
|
||
int32_t len = maxValue - minValue;
|
||
while (Input > maxValue)
|
||
{
|
||
Input -= len;
|
||
}
|
||
}
|
||
else if (Input < minValue)
|
||
{
|
||
int32_t len = maxValue - minValue;
|
||
while (Input < minValue)
|
||
{
|
||
Input += len;
|
||
}
|
||
}
|
||
|
||
|
||
return Input;
|
||
}
|
||
|
||
extern int map(int x, int in_min, int in_max, int out_min, int out_max) //ӳ<>亯<EFBFBD><E4BAAF>
|
||
{
|
||
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
|
||
}
|
||
|
||
extern fp32 map_fp32(fp32 x, fp32 in_min, fp32 in_max, fp32 out_min, fp32 out_max) //ӳ<>亯<EFBFBD><E4BAAF>
|
||
{
|
||
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
|
||
}
|
||
|
||
|