Undocumented syntax

Hi

I've seen in this Forum and elsewhere several syntax constructs that I couldn't find anywhere in the Reference or Extended pages like:

ADMUX = B01100110;
ADCSRB = B00000000;
ADCSRA = B11001111;
ISR(ADC_vect) { ... };
TCCR5B |= (1<<WGM53)| (1<<CS50);
OCR5A = 0x063F;
ISR(TIMER5_COMPA_vect) {...};
....

Where you can learn this kind of statements? Are they documented somewhere?

Thanks in advanced.

The syntax is standard C - what you're looking at is references to the internal registers (and their control bits) of the AVR processor.

If you need to ask the question, it is probably best that you leave this stuff alone for a while.

ADMUX = B01100110;
ADCSRB = B00000000;
ADCSRA = B11001111;
OCR5A = 0x063F;

The abbrevations on the left are registers. That is, specific locations in the memory of the processor. The Bxxxxxxxx notation is documented here: http://arduino.cc/en/Reference/Byte, and the 0x is a hexadecimal formatter.

TCCR5B |= (1<<WGM53)| (1<<CS50);

This uses bitwise operators

ISR(ADC_vect) { ... };
ISR(TIMER5_COMPA_vect) {...};.

These are called InterruptServiceRoutines and is just some predefined handlers for events. They, as the registers, have a fixed location in processor memory.
ISRs should and must be used with caution.

I'm sure this was poorly explained, but feel free to google the terms and names for further knowledge.

If you read the ATMEL DATASHEETS about the chips we are using... you will find references.

As mentioned... it's about the stuff that is "behind the pretty curtains" that ARDUINO is trying to have you not worry about. Once you have a good understanding of the chip from reading the DATASHEET though... then this stuff is there for you to play with.