Arduino Forum

Products => Arduino Due => Topic started by: paulinchen on Mar 05, 2013, 02:18 pm

Title: function "digitalRead(port)" not possible on DUE?
Post by: paulinchen on Mar 05, 2013, 02:18 pm
Hello,
i use im my sketch (ported from MEGA) the following function:


digitalWrite(PORT_REL1, PORT_REL_EIN);  //set pin 2 on low or high

and later..

Serial.println(digitalRead(PORT_REL1));     //read pin 2



But the result of the digitalRead() is always 0 in case of some ports (2, 22, 30, 40...) ?
On some other ports (3, 8, 9..) the function works fine.

Is it a bug or a "feature"?

paulinchen
Title: Re: function "digitalRead(port)" not possible on DUE?
Post by: paulinchen on Mar 05, 2013, 04:00 pm
Hello,
if i use

Serial.println(PIO_Get(g_APinDescription[PORT_REL1].pPort, PIO_OUTPUT_0, g_APinDescription[PORT_REL1].ulPin));

instead of the buggy digitalRead()-function

it works fine.

paulinchen
Title: Re: function "digitalRead(port)" not possible on DUE?
Post by: cmiyc on Mar 06, 2013, 03:51 am
What is PORT_REL1?
Title: Re: function "digitalRead(port)" not possible on DUE?
Post by: retrolefty on Mar 06, 2013, 06:21 am
First you should use the proper term

Quote
function "digitalRead(port)"


Port means something else in the AVR/Arduino world, and you are misusing it in this context. You should say:

Quote
function "digitalRead(pin)"


Pin is a single input or output bit
Port is a group of 8 associated I/O bits.

Lefty