1. /*********最小值*********/
  2. min() //实现:#define min(a,b) ((a)<(b)?(a):(b))
  3.  
  4. /*********最大值*********/
  5. max() //实现:#define max(a,b) ((a)>(b)?(a):(b))
  6.  
  7. /*********绝对值*********/
  8. abs() //实现: #define abs(x) ((x)>0?(x):(-x))
  9.  
  10. /*********调整到区间*********/
  11. //如果值 amt 小于 low, 则返回 low; 如果 amt 大于 high, 则返回 high; 否则, 返回 amt . 一般可以用于将值归一化到某个区间
  12.  
  13. constrain() //实现:#define constrain(amt, low, high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
  14.  
  15. /*********等比映射*********/
  16. long map(long x, long in_min,long in_max,long out_min,long out_max);
  17. //将位于[in_min, in_max]之间的x映射到[out_min, out_max]. 参数: x 要映射的值 in_min 映射前区间 in_max 映射前区间 out_min 映射后区间 out_max 映射后区间
  18.  
  19. /*********指数运算*********/
  20. double pow (float base, float exponent);
  21.  
  22. /*********平方运算*********/
  23. double sqrt(double x) //实现: #define sqrt(x) ((x)*(x))
  24.  
  25. /*********三角函数运算*********/
  26. float sin(float rad);
  27. float cos(float rad);
  28. float tan(flaot rad);
  29.  
  30. /*********随机数运算*********/
  31. void randomSeed(unsigned int seed); //seed:随机种子
  32. long random(long howbig); //生成随机数,范围[0,howbig-1]
  33.  
  34. /********位运算*********/
  35. #define lowByte(w) ((w) & 0xff) //取低字节
  36. #define highByte(w) ((w) >> 8) //取高字节
  37. #define bitRead(value, bit) (((value) >> (bit)) & 0x01) //读一个bit
  38. #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) //写一个bit
  39. #define bitSet(value, bit) ((value) |= (1UL << (bit))) //设置一个bit
  40. #define bitClear(value, bit) ((value) &= ~(1UL << (bit))) //清空一个bit
  41. #define bit(b) (1 << (b)) //生成相应bit

Arduino101学习笔记(八)—— 函数库的更多相关文章

  1. 重温JSP学习笔记--El函数库

    EL函数库(由JSTL提供的) * 导入标签库:<%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/f ...

  2. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  3. Go语言学习笔记八: 数组

    Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...

  4. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  5. go微服务框架kratos学习笔记八 (kratos的依赖注入)

    目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding ...

  6. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  7. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  8. Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  9. matlab学习笔记13_1 函数返回值

    一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://blog.csdn.net/qq_36556 ...

  10. Redis学习笔记八:集群模式

    作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是 ...

随机推荐

  1. 100m和1000m网线的常见制作方法

    100m和1000m网线的常见制作方法 100m和1000m网线的常见制作方法: 5类线(100m)的制作: a: 绿白(3).绿(6).橙白(1).蓝(4).蓝白(5).橙(2).棕白(7).棕(8 ...

  2. 24. javacript高级程序设计-最佳实践

    1. 最佳实践 l 来自其他语言的代码约定可以用于决定何时进行注释,以及如何进行缩进,不过JavaScript需要针对其松散类型的性质创造一些特殊的约定 l javascript应该定义行为,html ...

  3. window.location.href url含中文服务器收到乱码问题解决

    中文乱码问题 window.location.href url含中文服务器收到乱码问题解决 (1).页面中先对中文进行编码. 如:window.location.href = url+"&a ...

  4. Hibernate查询语句

    1 hql查询 Hibernate的查询语句,hiberante提供的面向对象的查询语言,和sql语句的语法的相似.而且严格区分大小写. 1.1 from字句 /** * hql: from 字句 * ...

  5. mongodb配置文件.conf

    启动方式 ./bin/mongod -f MongoDB.conf 会看到 about to fork child process, waiting until server is ready for ...

  6. vs c++系统函数 计时器和暂停

    在vs console下, 1 添加计时器 #include <Windows.h> double start = GetTickCount(); double end = GetTick ...

  7. FILE文件操作

    http://www.jb51.net/article/37688.htm fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FI ...

  8. Linux下第一次使用MySQL数据库,设置密码

    在终端下输入:/etc/rc.d/init.d/mysqld status 查看MySQL状态,看看是否运行. 没有运行的话就输入:/etc/rc.d/init.d/mysqld start 这时,就 ...

  9. TCP 四次握手

    TCP协议中的三次握手和四次挥手(图解) http://blog.csdn.net/whuslei/article/details/6667471/

  10. [webkit移动开发笔记]之如何去除android上a标签产生的边框(转)

    转载地址:http://www.cnblogs.com/PeunZhang/archive/2013/02/28/2907708.html 去年年底,做完最后一个项目就可以开开心心回家,可是在测试阶段 ...