首页 理论教育 Arduino单片机实战:setup函数

Arduino单片机实战:setup函数

时间:2023-10-23 理论教育 版权反馈
【摘要】:前面给出的程序中有个函数setup(),代码如下:代码给出了一条简短的注释,告诉读者在重置程序时只调用一次setup()函数。标准C语言使用名为main()的函数启动程序执行,在Arduino C中标记程序起点的是setup()函数。请务必记住,当程序运行时,setup()函数只被调用一次,并首先开始执行。这个重置按钮停止程序的当前执行,并通过调用setup()重新启动程序。

Arduino单片机实战:setup函数

前面给出的程序中有个函数setup(),代码如下:

代码给出了一条简短的注释,告诉读者在重置程序时只调用一次setup()函数。这是所有Arduino C程序的特点。你编写的每个程序中都有一个setup()函数。实际上,setup()是所有Arduino C程序的起点。标准C语言使用名为main()的函数启动程序执行,在Arduino C中标记程序起点的是setup()函数。

由于setup()函数是所有Arduino C程序的起点,所以它也就成为五步程序执行过程的初始化环节,作用是建立程序运行的环境。在这种情况下,初始化步骤仅将Arduino板上的数字I/O管脚的管脚13(其值存储在led中)定义为输出模式。它通过调用名为pinMode()的预写函数将函数执行其任务所需的信息作为参数传递给函数来建立此模式。也就是说,pinMode()显然需要知道存在于其“黑匣子世界之外的两件事来执行其任务:(1)程序员希望设置哪个pin;(2)程序员是否希望它作为输入或输出pin发挥作用。pinMode()的第一个参数是要设置的管脚。在此程序中,程序员希望设置led引脚(即引脚13)。pinMode()的第二个参数表示pin的模式。在这个程序中,程序员希望引脚作为输出引脚工作。也就是说,我们希望使用管脚的输出来控制其他事物,而不是通过管脚从“外部世界”输入值。

注意:读者经常会读到短语“调用函数”以及“从函数返回”甚至“返回”,这些是程序员常用的习惯用法,并有特定的解释。考虑一个函数作为一个有前门和后门的黑盒子。我们把自己想象成一个在程序中大步前进的人要执行的每个程序语句。术语“调用函数”意味着,每当“调用函数”时,在背包上,塞满此函数可能需要的任何信息,然后“调用函数”黑匣子的门打开了,你走进来,开始执行黑匣子里包含的任何指令。如果黑匣子需要来自外部世界的信息,它会先从你的背包中获取这些信息并开始它的任务。然后,黑匣子完成它的任务,此后,它可能(也可能不)放入一些新的信息在你的背包里。然后,它会引导你走到后门,并立即将你送回到你原先访问黑盒的程序点。这是回到过去的过程,这个精确的程序点被称为“返回调用方”或“从函数返回”。函数只不过是一段旅程,它指向一组预先编写的程序语句,这些语句旨在完成一项特定的任务。一旦该任务完成,程序控制立即返回原调用点。

那么,第二个名为OUTPUT的参数是关于什么的?它在程序中的定义是什么?输出是一个符号常量,可以看作是嵌入在编译器中的变量名。符号常量是绑定到特定数据值的名称。有一个程序符号常量以大写字母书写的约定。因为C语言是区分大小写的,所以你可以定义一个名为output的变量,并且编译器知道它是自己的另一个变量,符号常量命名为输出。

为什么使用符号常量?简单地说,它使程序代码更易于阅读。下面两个语句,你更愿意在程序中阅读哪一个?(www.xing528.com)

(1)pinMode(led,OUTPUT);

(2)pinMode(led,1)。

使用符号常量还有其他原因,我们将在后面的章节中解释。不过,现在只需将符号常量想象为一系列与某个预定义值关联的大写字母。

请务必记住,当程序运行时,setup()函数只被调用一次,并首先开始执行。这就是为什么我们可以在程序中引用setup()作为初始化步骤。如果你要再次调用setup(),则必须按下开发板上的重置按钮。这个重置按钮停止程序的当前执行,并通过调用setup()重新启动程序。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈