购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.6.1 数字IO口相关函数

1.Pin Mode(pin,mode)

Pin Mode函数用于配置引脚为输出或输出模式,它是一个无返回值函数。

Pin Mode函数有两个参数——Pin和 Mode。Pin 参数表示要配置的引脚,以ArduinoUno为例,它的范围是数字引脚0~13,也可以把模拟引脚(A0~A5)作为数字引脚使用,此时编号为14脚(对应模拟引脚0)到19脚(对应模拟引脚5)。Mode参数表示设置的模式——INPUT(输入)或 OUTPUT(输出),其中 INPUT 用于读取信号,OUTPUT 用于输出控制信号。

由于Arduino项目是完全开源的,所以pinMode(pin,mode)函数原型可直接在Arduino开发环境目录下hardware\arduino\core\arduino文件夹中的wiring-digital.c文件查看。

pinMode(pin,mode)函数原型:

void pinMode(uint8-t pin,uint8-t mode)

{

Uint8-t bit=digitalPinToBitMask(pin);

Uint8-tport=digitalPinToPort(pin);

Volatile uint8-t*reg;

If (port==NOT-A-PIN)

Return;

Reg=portModeRegister(port);

If(mode==INPUT)

{

Uint8-t oldsREG=SREG;

Cli();

*reg&=-bit;

SREG=oldSREG;

}

else

{

Uint8-t oldSREG=SREG;

Cli();

*reg|=bit;

SREG=oldSREG;

}

}

可以在开发环境中的下列示例程序中找到pinMode函数的应用:

ADXL3xx.pde、AnalogInput.pde、Blink.pde、Blinkwithout Delay.pde、Button.pde、Calibration.pde、Debunce.pde、Dimmer.pde、Knck.pde、Loop.pde、Melody.pde、Memsic2125.pde、PhysicalPixel.pde、Ping.pde。

2.digitalWrite(pin,value)

digitalWrite函数的作用是设置引脚的输出电压为高电平或低电平,也是一个无返回值函数,在使用该函数设置引脚之前,需要先用pinMode将引脚设置为OUTPUT模式。

digitalWrite函数有两个参数——pin和value:pin参数表示所要设置的引脚;value参数表示输出的电压——HIGH(高电平)或LOW(低电平)。

digitalWrite(pin,value)函数原型同样也可以在wiring-digital.c文件中找到,函数原型如下:

void digitalMrite(uint8-tpin,uint8-t val)

{

uint8-t timer=digitalpinToTimer(pin);

uint8-t bit=digitalpinToBitMask(pim);

uint8-tport=digtalpinToPort(pin);

volatile uint8t*out;

if (port==NOT-A-PIN)return;

//if the pin that support PWM output,we need to turn it off

//before doing a digital write.

if(timer i=NOT-ON-TIMER)turnoffPWM(timer);

out=portoutputReginter(port);

if(val==LOM)

{

uint8-t oldsreg=SREG

cli();

*out &=-bit;

SREG=oldSREG;

}

else

{

uint8t- oldSREG=SREG;

cli();

*out|-bit;

SREG=oldSREG;

}

}

可以在开发环境的下列示例程序中找到digitalWrite函数的应用:

ADXL3xx.pde、AnalogInput.pde、Blink.pde、Blinkwithout Delay.pde、Button.pde、Calibration.pde、Debunce.pde、Dimmer.pde、Knck.pde、Loop.pde、Melody.pde、Memsic2125.pde、PhysicalPixel.pde、Ping.pde。

3.digitalRead(pin)

digitalRead函数的作用是获取引脚的电压情况,该函数的返回值为in型—HIGH(高电平)或者 LOW(低电平),在使用该函数设置引脚之前,需要先用 pinMode 将引脚设置为INPUT模式。

digitalRead函数只有一个参数——pin,它表示所要获取电压情况的引脚号,如果引脚没有连接到任何地方,则将随机返回HIGH(高电平)或者LOW(低电平)。

函数原型如下:

Int digitalRead(uint8-t pin)

{

uint8-t timer=digitalPinToTimer(pin);

uint8-t bit=digitalPinToBitMask(pin);

uint8-t port=digitalPinToPort(pin);

if (port==NOT-A-PIN)return LOW;

//if the pin that support PWM output we need to turn it off

//before qetting a digital reading.

if (timer 1=NOT –ON-TIMER)turnoffpwm(timer);

if(*portInputRegister(port)&bit)return HIGH;

return LOW;

}

可以在开发环境的下列示例程序中找到digitalRead函数的应用:

Button.pde、Debounce.pde。 Bg0u/tCGstFnnzMwVthtl6Fd2MHgrOluIFOlvWHC86+0kC0Iukg6fGh5+Gs8sIXo

点击中间区域
呼出菜单
上一章
目录
下一章
×