kevinzhang 发表于 2014-7-28 13:13:01

不好意思,低级问题请教

void setup()
{
Serial.begin(9600);
pinMode(8, OUTPUT);
}

void loop()
{
digitalWrite(8, HIGH);
if(digitalRead(8))
{
    ......①
}
else
{
    ......②
}
}

请问,会跳到①段还是②段呢?{:soso_e183:}

林定祥 发表于 2014-7-28 13:20:08

Pin8已经定义作为输出了,而且已经知道设置为High了,为什么还要去读?但语句如果High就到1,永远到不了2.

kevinzhang 发表于 2014-7-28 13:24:37

林定祥 发表于 2014-7-28 13:20 static/image/common/back.gif
Pin8已经定义作为输出了,而且已经知道设置为High了,为什么还要去读?但语句如果High就到1,永远到不了2.

8脚上会挂一个LED,经过多次输出高低电平后,想读一下确认最后LED的状态,所以会有一个digitalRead。

如果HIGHT= 1, LOW = 0的话, 那么应该是跳转到2段吧。这个还要请教。

i7456 发表于 2014-7-28 13:35:07

这么简单的问题,自己测试下不就知道了么

kevinzhang 发表于 2014-7-28 13:41:19

i7456 发表于 2014-7-28 13:35 static/image/common/back.gif
这么简单的问题,自己测试下不就知道了么

正好现在手头没板子测;P,就过来抛个帖子问问。

Ansifa 发表于 2014-7-28 14:59:35

{:soso_e143:}
HIGH=1=true


if(true)
{
    ......①。。。永远在这里
}
else
{
    ......②
}

kevinzhang 发表于 2014-7-28 15:10:48

Ansifa 发表于 2014-7-28 14:59 static/image/common/back.gif
HIGH=1=true




哦,ture是HIGH。那定义成输出的端口,也是可以读的咯。

Ansifa 发表于 2014-7-28 15:17:08

kevinzhang 发表于 2014-7-28 15:10 static/image/common/back.gif
哦,ture是HIGH。那定义成输出的端口,也是可以读的咯。

可以读的。无论是自身输出或是外界强加的,都能正确读出。读写是两条电路。

kevinzhang 发表于 2014-7-28 15:42:18

Ansifa 发表于 2014-7-28 15:17 static/image/common/back.gif
可以读的。无论是自身输出或是外界强加的,都能正确读出。读写是两条电路。

:handshake:handshake:handshake

林定祥 发表于 2014-7-28 16:19:26

kevinzhang 发表于 2014-7-28 15:42 static/image/common/back.gif


你的loop中,程序是按以下顺序走的
digitalWrite(8, HIGH);
   if(digitalRead(8))
if前已经被你 High了,因此只会走到1,不可能到2

kevinzhang 发表于 2014-7-28 16:25:36

林定祥 发表于 2014-7-28 16:19 static/image/common/back.gif
你的loop中,程序是按以下顺序走的
digitalWrite(8, HIGH);
   if(digitalRead(8))


:handshake:victory::handshake
页: [1]
查看完整版本: 不好意思,低级问题请教