#norelated * LEDサンプル [#d2eb2c43] やっぱり最初はこれよね。~ LEDをPD0〜PD7に接続。~ 以下、ソースコード。~ #include <avr/io.h> #include <util/delay.h> void delay_ms( int t ) { while( t-- ){ _delay_ms( 1 ); } } int main( void ) { DDRD = 0b11111111; PORTD = 0b00000000; char count = 0; char binc = 0; while( 1 ){ PORTD = ( 1 << count ); if( 0 == binc ){ count++; if( 7 <= count ){ binc = 1; } } else { count--; if( 0 >= count ){ binc = 0; } } delay_ms( 100 ); } return 0; } ATmega168Pは、内蔵RC発信器が8MHzとなっていたので、普通にCPUのFrequencyも8MHzだろうと思いこむ。~ AVRStudioのProjectOptionで、Frequencyを8000000Hzに設定して、F_CPUのdefineを設定したんだけど、実際やってみると、delay_msの待ちが余りに遅い。~ 具体的に言うと、8倍くらい。~ データシートを読み返してみると、ヒューズビットにCKDIV8とかいうのがあって、こいつが0だと、実際には8で割った数がシステムクロックとなるらしい。~ (システムクロック前置分周器:目的としては、消費電力節約用?)~ ってんで、ProjectOptionを1000000Hzに設定しなおして、事なきを得る。~