// Copyright 2006 Yamane Akira // IccAVR Sample program // Target: Device: ATmega48 // Subject: Change Internal RC Osscillator Frquency: // 1MHz ->4MHz -> 1MHz-> // Programmed by Akira Yamane // May 25 05 #include #include void port_init(void) { PORTB = 0xFF; DDRB = 0xFF; PORTC = 0x7F; DDRC = 0x00; PORTD = 0xFF; DDRD = 0xFF; } // delay function void delay() { unsigned char a,b; for (a = 1; a; a++) for (b = 1; b; b++) ; } // CLK Prescaler set to 4Hz void clkpr_4_set(void) { CLKPR = 0x80; CLKPR = 0x01; } // CLK Prescaler set to 1MHz void clkpr_1_set(void) { CLKPR = 0x80; CLKPR = 0x03; } // LED bit i On Function void LED_ON(int i) { PORTB = ~BIT(i); delay(); } void main(void) { int i; port_init(); while(1) { clkpr_1_set(); for (i = 0; i < 8; i++) LED_ON(i); for (i = 8; i > 0; i--) LED_ON(i); clkpr_4_set(); for (i = 0; i < 8; i++) LED_ON(i); for (i = 8; i > 0; i--) LED_ON(i); } }