Arduino Registers

Hello,

I recently purchased my first arduino (Arduino Main Board Retail, from sparkfun), I liked it very much, very user-friendly, I had a LED blinking a few minutes after unpacking.

I used to program PIC18 microcontrollers before using arduino, and despite the accessibility of arduino, I missed being able to handle the native registers of the microprocessor.
UNTIL today, when I was reading some code and realized the programmer used "PORTD" "DDRD" etc. so I immediately started searching for other registers, but they seem kind of hidden from the public, since I couldn't find any good list of them at the arduino website.

SO, can you guys point me to a list of important registers? or a list of all of them, if there is one. I am specially interested in STATUS and TIMER registers, to check overflows and stuff like that.

THANK YOU!

The Arduino environment is built on top of AVR-LIBC:

http://www.nongnu.org/avr-libc/user-manual/index.html

That is one level of abstraction lower. The lowest level, below AVR-LIBC, is the datasheet for the ATmega328 which describes exactly what all the registers do and their names:

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, light sensor, potentiometers, pushbuttons

Cool, thanks!

I wonder which timers arduino actually uses and where.
I mean, what timer is used for millis() and micros(), which ones can I edit without messing with important funcions, etc.

Timer 0 is used for millis() and friends.

To look into the Arduino core you should find the hardware/arduino/cores/arduino folder in your installation and browse through the files there. There's nothing like reading the source to figure out exactly how things work.

--
Need a custom shield? Let us design and build one for you.