野中です。お世話になります。
H8/3048FでITUのTIORの設定方法の質問です。
やりたいことは、PWM信号を作りたいのですが、PWMモードにせずに
WDTで20msの割り込みを発生させ、割り込み時にITUの設定を
行い、2ms程度後にコンペマッチで出力をH→Lにしたいのです。
なぜ、PWMモードを使わないのかといいますと、1つのITUで2つの
PWM信号を作りたいからです。
SH7040の場合はTIORの設定で、初期出力を1にして、コンペアマッチ
で
0にすることができますが、3048の場合は、コンペアマッチで0にすること
は
できそうですが、初期値を1にする方法がわかりません。
何か方法があるのでしょうか?お教え下さい。
ちなみに、WDTの割り込み関数は次の通りです。
void int_wovi(void)
{
ITU.TSTR.BIT.STR1=0; // ITU1
ITU1.TCR.BYTE=3; // 1/8
ITU1.TIOR.BYTE=0x99;
ITU1.GRA=2000;
ITU1.GRB=3000;
ITU1.TCNT=0;
ITU.TSTR.BIT.STR1=1;
WDT.WRITE.TCSR=0x5ab2;
WDT.READ.TCSR.BIT.OVF;
WDT.WRITE.TCSR=0xa53e;
}
TIORの値を0xbbのトグル動作にすれば、波形は出ていますから
割り込みは発生しているようです。