Hi - is it possible to get the AVR processor boards to halt their clock oscillator, to engage a "sleep mode"?
I'm interested in a low-noise application of the AVR, e.g. putting a microprocessor in an RF screened room. Ideally, I'd like a device which can stop all on-board oscillators, most of the time.
If the processor receives an interrupt (e.g. the level on an input pin changes), then it wakes up, starts the oscillator, executes a bit of code in order to do something useful to control an experiment (in the process generating some RF noise) and then it goes back to sleep for a few minutes while the sensitive experiment runs with the new parameters, eventually the experiment triggers a level change and the process repeats.
Is it possible to get the AVR to run an internal oscillator in this way?
Funny, I was thinking about a similar problem What I had envisioned initially was something like a one shot (555) that held the atmega on long enough for it to boot up and turn on a transistor via a pin to keep itself turned on until it was time to turn off again.
I've not messed with sleep mode much though, I'm sure it is possible, might need to disable the timer0 ISR (just a flag). There's lots of info in the atmega168 datasheet to pour over.
Is it possible to get the AVR to run an internal oscillator in this way?
Yes, but you're going to have to read the datasheet in order to understand the differences between the sleep modes. In a nutshell, the differences relate to how much of the internal operation is shut down during the sleep interval and what stimuli will awaken the device.
If you don't already have it, go to the Atmel site and download the full datasheet for the processor on your Arduino (ATmega8, ATmega168, etc.) and read the chapter entitled "Power Management and Sleep Modes".