Go Down

Topic: Accessing Ports and Pins on Arduino Due (Read 1 time) previous topic - next topic

decrux

Dec 23, 2012, 03:05 pm Last Edit: Dec 23, 2012, 03:10 pm by decrux Reason: 1
Hello there,
in addition to my post "LCD with Arduino Due"(maybe you can have a look at it too) in the Displays forum, I have a question about accessing pins. With atmega32 I could do things like "DDRD |= 1 << PD3;" Are there similar possibilities for the sam3x? I read a little bit in the datasheet about PIO and "thousands" of registers. I came across the PIO_Get(...) function located in the pio.c which says
"Returns 1 if one or more PIO of the given Pin instance currently have
* a high level; otherwise returns 0.
"
How can i interprete that?
My initiate idea was to put all necessary pins in one union and then accessing it via a Bitmask like:
Code: [Select]
union UnionOfPins {PORTA:1; PORTB:2; PORTA:3...; int myPort} myUnionOfPins; myUnionOfPins.myPort = 0xff; In other words I want to define my own Port or at least use the already defined Ports.
One code example with getting a LED to blink with/(preferably)without using Arduino functions would already help quite a lot I think!

Why do I ask? Because my code looks like this:
Quote

pinMode(16, OUTPUT); pinMode(15, OUTPUT); pinMode(14, OUTPUT);
pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); pinMode(2, OUTPUT);

digitalWrite(14, LOW);
delay(1000);
digitalWrite(16, LOW); digitalWrite(15, LOW);
digitalWrite(9, LOW); digitalWrite(8, LOW); digitalWrite(7, HIGH); digitalWrite(6, HIGH); digitalWrite(5, HIGH); digitalWrite(4, LOW); digitalWrite(3, LOW); digitalWrite(2,
...

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy