Reference Language | Libraries | Comparison | Changes
把代码分段写入函数使程序员能编写模块化的代码,函数能执行一个特定的任务,然后返回代码中调用它的地方。创建函数的典型情况是当程序中需要多次进行相动的动作时。
对于习惯用 BASIC 的程序员,Arduino 中函数的作用与子程序(BASIC 中的 GOSUB)相同。
把代码段写成函数有许多好处:
在 Arduino 程序中有2个必需的函数:setup() 和 loop()。其它函数必需创建在这两个函数的括号之外。下例中我们创建了一个函数,把两个数相乘。
要调用这个简单的函数,需要传送参数给它,并且数据类型也要符合要求:
void loop{ int i = 2; int j = 3; int k; k = myMultiplyFunction(i, j); // k now contains 6 }
函数需要在其他函数之外declared, 所以 "myMultiplyFunction()" 可以放在 "loop()" 函数之前或之后。
整个程序看起来就象这样:
void setup(){ Serial.begin(9600); } void loop() { int i = 2; int j = 3; int k; k = myMultiplyFunction(i, j); // k now contains 6 Serial.println(k); delay(500); } int myMultiplyFunction(int x, int y){ int result; result = x * y; return result; }
这个函数用 analogRead() 重复五次读取一个传感器并计算平均值,再把数据调整为8位(0-255)并反转,最后返回反转后的值。
int ReadSens_and_Condition(){ int i; int sval = 0; for (i = 0; i < 5; i++){ sval = sval + analogRead(0); // sensor on analog pin 0 } sval = sval / 5; // average sval = sval / 4; // scale to 8 bits (0 - 255) sval = 255 - sval; // invert output return sval; }
要调用这个函数,只需要把它赋给一个变量:
int sens; sens = ReadSens_and_Condition();
勘误、提议和新的文档可以张贴到 论坛.
The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.