首页 > 代码库 > Arduino101学习笔记(八)—— 函数库

Arduino101学习笔记(八)—— 函数库

/*********最小值*********/
min()                     //实现:#define min(a,b)  ((a)<(b)?(a):(b))

/*********最大值*********/
max()                     //实现:#define max(a,b)  ((a)>(b)?(a):(b))

/*********绝对值*********/
abs()                     //实现: #define abs(x)  ((x)>0?(x):(-x))

/*********调整到区间*********/
//如果值 amt 小于 low, 则返回 low; 如果 amt 大于 high, 则返回 high; 否则, 返回 amt . 一般可以用于将值归一化到某个区间

constrain()           //实现:#define constrain(amt, low, high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) 

/*********等比映射*********/
long map(long x, long in_min,long in_max,long out_min,long out_max);
//将位于[in_min, in_max]之间的x映射到[out_min, out_max]. 参数: x 要映射的值 in_min 映射前区间 in_max 映射前区间 out_min 映射后区间 out_max 映射后区间

/*********指数运算*********/
double  pow (float base, float exponent);

/*********平方运算*********/
double  sqrt(double x)       //实现:    #define sqrt(x)  ((x)*(x))

/*********三角函数运算*********/
float sin(float rad);
float cos(float rad);
float tan(flaot rad);

/*********随机数运算*********/
void randomSeed(unsigned int seed);        //seed:随机种子
long random(long howbig);                         //生成随机数,范围[0,howbig-1]

/********位运算*********/
#define  lowByte(w)   ((w) & 0xff)    //取低字节   
#define  highByte(w)   ((w) >> 8)     //取高字节   
#define  bitRead(value, bit)   (((value) >> (bit)) & 0x01)     //读一个bit   
#define  bitWrite(value, bit, bitvalue)   (bitvalue ? bitSet(value, bit) : bitClear(value, bit))    //写一个bit
#define  bitSet(value, bit)   ((value) |= (1UL << (bit)))    //设置一个bit   
#define  bitClear(value, bit)   ((value) &= ~(1UL << (bit)))    //清空一个bit   
#define  bit(b)   (1 << (b))    //生成相应bit

Arduino101学习笔记(八)—— 函数库