レジスターに値を代入し、D13のLEDを点滅させる内容。
void
sysdown ( int dly ) // dly .. in msec
{
int i ;
byte s ;
SPCR = 0x00 ; // disable SPI
TCCR0B = 0x00 ; // stop timer0
TCCR0A = 0x02 ; // ctc mode
TIMSK0 = 0x00 ; // Disable all timer0 irqs
TIFR0 = 0x07 ; // clear flags
TCNT0 = 0x00 ;
OCR0A = 250 - 1 ;
TCCR0B = 0x03 ; // start timer0 pre = 1/64 i.e 250kHz
s = 0 ;
while ( true ) {
if ( ++ s & 1 )
PORTB |= 0x20 ; // D13 == HIGH (LED on)
else
PORTB &= 0xdf ; // D13 == LOW (LED off)
for ( i = 0 ; i < dly ; i ++ ) {
while ( ( TIFR0 & 2 ) == 0 )
;
TIFR0 = 0x07 ; // clear flags
}
}
}
【このカテゴリーの最新記事】
- no image
- no image
- no image
- no image
- no image