//set timer1 interrupt at 1Hz TCCR1A = 0;// set entire TCCR1A register to 0 TCCR1B = 0;// same for TCCR1B TCNT1 = 0;//initialize counter value to 0 // set compare match register for 1hz increments OCR1A = 15624;// = (16*10^6) / (1*1024) - 1 (must be <65536) // turn on CTC mode TCCR1B |= (1 << WGM12); // Set CS10 and CS12 bits for 1024 prescaler TCCR1B |= (1 << CS12) | (1 << CS10); // enable timer compare interrupt TIMSK1 |= (1 << OCIE1A);
I just haven't been able to locate the documentation for them.
The definitions are scattered through the Arduino installation, but for example the register addresses you asked about used are defined under board-specific files under hardware\tools\avr\avr\include\avr\.They aren't documented as part of the Arduino runtime environment, I suppose on the basis that they aren't part of the API - they are part of the implementation. It's possible to bypass the Arduino library and access the hardware directly, and obviously various clever people have done that - and some of them have documented what they did and how it works - but those definitions are not documented as part of the API.
You mentioned the __DATE__ and __TIME__ preprocessor directives. There are some macros and directives which are defined by the C++ language, and others that are added by the GCC compiler that Arduino uses. These are also not part of the Arduino API and so are not covered by the Arduino documentation, but you're free to look up the language specification and compiler behaviour for yourself if it interests you.
Please enter a valid email to subscribe
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!
via Egeo 16