Articles Posted by the Author:

  • max(x, y)

    max(x, y)

    描述 比较出两数中最大者。 参数 x: 第一个数,任意资料型别 y: 第二个数,任意资料型别 回传 两数中较大者 范例 注意 以直观的计数方式来说,max() 比较常用来让数值低于一个变数范围,而 min()比较常用来让数值高于一个变数范围。 警告 因为 max() 实作方式的关系,尽量避免在括号 () 中使用其他的函式,否则它可能会导致不正确的结果。 See also - min() - constrain() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples […]


  • min(x, y)

    min(x, y)

    描述 比较出两数中最小者。 参数 x: 第一个数,任意资料型别 y: 第二个数,任意资料型别 回传 两数中较小者 范例 注意 以直观的计数方式来说,max() 比较常用来让数值低于一个变数范围,而 min()比较常用来让数值高于一个变数范围。 警告 因为 min() 实作方式的关系,尽量避免在括号 () 中使用其他的函式,否则它可能会导致不正确的结果。 See also - max() - constrain() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples […]


  • delayMicroseconds()

    delayMicroseconds()

    描述 将程式暂停一段由参数指定的时间 (单位是微秒),1000 微秒 = 1 毫秒,1000000 微秒 = 1 秒。 目前产生的精确延迟时间最长约为 4000000 微秒,这个值会因为未来 86Duino 释出的版本不同而改变。延迟如果会超过数秒钟的话,建议使用 delay() 比较适合。 语法 delayMicroseconds(us) 参数 us: 暂停多少微秒 (unsigned long) 回传 无回传值 范例 将 pin 8 设定成输出,并且连续送出 100 微秒周期的脉冲。 警告与已知问题 一般来说这个函式在一定的时间范围内运作是很精确的,但是 delayMicroseconds() 等待期间并没有关闭中断,我们不能确定它是否一直都能拥有精确且极短的延迟时间。 See also - millis() - micros() - delay() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino […]


  • delay()

    delay()

    描述 将程式暂停一段由参数指定的时间 (单位是毫秒,1000 毫秒 = 1 秒) 语法 delay(ms) 参数 ms: 暂停多少毫秒 (unsigned long) 回传 无回传值 范例 警告 虽然用 delay() 很容易能制作出闪烁的 LED 灯,也可以用来去除外部开关的瞬间抖动,不过,太常使用 delay() 也有一些显著的缺点;例如:在延迟的这段时间里,不能读取感测器、不能做数学运算、不能处理 pin 脚信号,也就是说它会让大部分的动作都停摆;作为控制时间的替代方案可以参考使用 millis() 函式还有程式码范例,许多有经验的程式设计师会避免使用 delay() 超过十毫秒,除非程式码本身相当简单。 然而,在 delay() 的这段延迟期间里,CPU 还是可以做某些事情的:由于这段时间里没有关闭中断,所以从序列埠的 RX pin 脚进来的资料都会被纪录下来,PWM (analogWrite) 的数值和 pin 脚状态也会被保存,中断事件也会照常运作。 See also - millis() - micros() - delayMicroseconds() - Blink Without Delay example […]


  • micros()

    micros()

    描述 回传从 86Duino 开始运行程式到目前所经过的时间,单位是微秒;这个时间大约会在 70 分钟后溢位 (回到零)。 注解:1000 微秒 = 1 毫秒,1000000 微秒 = 1 秒。 参数 回传 程式开始执行至目前所经过的时间,以微秒为单位 (unsigned long) 范例 See also - millis() - delay() - delayMicroseconds() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons […]


  • millis()

    millis()

    描述 回传从 86Duino 开始运行程式到目前所经过的时间,单位是毫秒;这个时间大约会在五十天后溢位 (回到零)。 参数 无参数 回传 程式开始执行至目前所经过的时间,以微秒为单位 (unsigned long) 范例 提醒: millis() 回传值是 unsigned long 资料型别,如果程式设计师尝试以其他的资料型别做运算处理则可能会产生错误。 See also - micros() - delay() - delayMicroseconds() - Tutorial: Blink Without Delay 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons […]


  • pulseIn()

    pulseIn()

    描述 读取 pin 脚上的脉冲 (高或低电位) 持续时间;举个例子,如果输入值是 HIGH,pulseIn() 会等 pin 脚上的电位变成 HIGH 之后开始计时,等到又变回 LOW 才停止;之后会回传脉冲的持续时间,单位是微秒;假如在指定的时间内没有出现任何脉冲或是脉冲长度太长,则会放弃读取并回传 0。 指定时间的长短是取决于经验的,通常在长时间的脉冲下较容易发生错误,脉冲的测量长度介于 10 毫秒到 3 分钟之间。 语法 pulseIn(pin, value) pulseIn(pin, value, timeout) 参数 pin: 用来读取脉冲的 pin 脚 (int) value: 读取的脉冲型态,HIGH 或 LOW (int) timeout (非必要): 设定一段时间来等待脉冲开始,预设是一秒 (unsigned long) 回传 脉冲的时间长度 (单位是微秒) 。如果在超时前没有读到脉冲的话则是回传 0 (unsigned long)。 范例 语法参考主页面 本页由热血青年 LBU 译自英文版。 The […]


  • shiftIn()

    shiftIn()

    描述 以 byte 为单位来接收资料,一次一个 bit。可以从最高或者最低有效位元开始接收资料;接收每一个 bit 的过程中,时脉 pin 脚会先被拉成高电位,然后从资料 pin 上读取一个 bit,再将时脉 pin 脚拉成低电位。 注意:如果你使用的装置是属于正缘触发的类型,你需要确定时脉 pin 脚在呼叫 shiftOut() 之前是处于低电位的状态,例:可以呼叫 digitalWrite(clockPin, LOW) 将 pin 脚设定为低电位。 这个函式是以软体模拟方式实作的,可以参考 SPI 函式库,它提供了一个高效的硬体实作方式,但只能作用在某些固定的 pin 脚上。 语法 byte incoming = shiftIn(dataPin, clockPin, bitOrder) 参数 dataPin: 要读取 bit 的 pin 脚 (int) clockPin: 要输出时脉的 pin 脚 (int) bitOrder: 读取 bit 的顺序,不是 MSBFIRST 就是 […]


  • shiftOut()

    shiftOut()

    描述 以 byte 为单位将资料送出,一次一个 bit。可以从最高或者最低有效位元开始送出资料;每一个 bit 会被输出到一个资料 pin 脚上,再经过时脉 pin 脚上的高 / 低电位变化边缘让接收端判读该 bit 是否有效。 注意:如果你使用的装置是属于正缘触发的类型,你需要确定时脉 pin 脚在呼叫 shiftOut() 之前是处于低电位的状态,例:可以呼叫 digitalWrite(clockPin, LOW) 将 pin 脚设定为低电位。 这个函式是以软体模拟方式实作的,可以参考 SPI 函式库,它提供了一个高效的硬体实作方式,但只能作用在某些固定的 pin 脚上。 语法 shiftOut(dataPin, clockPin, bitOrder, value) 参数 dataPin: 要输出 bit 的 pin 脚 (int) clockPin: 要输出时脉的 pin 脚 (int) bitOrder: 送出 bit 的顺序,不是 MSBFIRST 就是 LSBFIRST […]


  • noTone()

    noTone()

    描述 停止由 tone() 产生的方波,在没有任何音频产生的时候呼叫此函式是没有作用的。 注意: 如果你想要在多个 pin 脚上拨放不同的音频,在呼叫下一个 tone() 前你需要先呼叫 noTone()。 语法 noTone(pin) 参数 pin: 要停止音频生成的 pin 脚 回传 无回传值 See also - tone() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the […]