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。