register definitions can be found in iox16e5.h. As I'm using an older avr-gcc I've looked in iox16d4.h instead, assuming that the base registers like for the clock are the same.
#include <avr io.h> #include <util delay.h> int main( void ) { // enable 32Mhz internal oscillator OSC.CTRL|=OSC_RC32MEN_bm; // wait for the oscillator to stabilize while (!(OSC.STATUS & OSC_RC32MRDY_bm)); // tell the processor we want to change a protected register CCP=CCP_IOREG_gc; // and start using the 32Mhz oscillator CLK.CTRL=CLK_SCLKSEL_RC32M_gc; // finally disable the default 2Mhz oscillator (optional) OSC.CTRL&=(~OSC_RC2MEN_bm); // set PA0 as output PORTA.DIRSET = 0b00000001; // blink LED on PA0 with 1 second on, 1 second off while (1) { PORTA.OUTSET = 0b00000001 ; _delay_ms( 1000 ) PORTA.OUTCLR = 0b00000001 ; _delay_ms( 1000 ) } }
No comments:
Post a Comment