H8 3048F のITU0を割り込みベクターを使った 割り込みをかけて、H/L H/Lと出力するプログラムを組みました。 出力を周波数カウンタにかけてみたところ76KHzと表示されました。 割り込み周期は1/φです。 3048 16MHzでは76KHzが最高となるんでしょうか? 実験に使ったソースは↓です。 コンパイラは秋月の物です。 #include <3048f.h> int lamp; #pragma interrupt(timer1INT) void timer1INT(void) { char dammy; dammy = ITU0.TSR.BYTE; /* dammy read */ ITU0.TSR.BYTE = 0x00; if ( lamp == 0 ) { lamp=1; P5.DR.BYTE=0xff; return; } if ( lamp == 1 ) { lamp=0; P5.DR.BYTE=0; return; } } void main (void) { ITU0.TCR.BYTE = 0x20; /* 00100000 */ ITU0.TSR.BYTE = 0x00; ITU0.GRA = 0x01; ITU0.TCNT = 0x00; ITU.TSTR.BIT.STR0 = 1; ITU0.TIER.BYTE = 0x01; P5.DDR = 0xff; /* port5出力に設定 表示LED */ P5.PCR.BYTE = 0x00; /* port5プルアップoff */ lamp=0; E_INT(); while(1) { } }