こんばんは小寺です。 早速のご回答ありがとうございます。 まだ色々とトライしております。 |コンペアマッチ割込みを使って更新されてはどうでしょう、 |つまりタイマ割込により周期の更新が必要な場合PWM割り込みを許可し、 |PWM割り込みの中でレジスタを更新する。 |#周期が50usしか無いのでちょっときついかも はじめは、A/D割込の中で処理していましたがタイマのコンペアマッチ 割込でも結果は、同じでした。オシロで遅延時間を計測したところ 最大で35μsecの遅延で割込みが確認できました。 |後は、カウンタの値を読み込んでコンペアマッチが生じる可能性 |が有るようならしばらく待ってから更新するとか。 これもやりましたが一回前のデューティと今のカウンタの値を比較して 差があるときだけ更新しました。結果は、一サイクルあたり10回 程度の更新にとどめないとやはり発生してしまいました。 |#レジスタにバッフアが無く単純に比較する値を小さくした時に |#カウンタの値が通り過ぎる現象なのかも デューティ50%ぐらいの所での発生が一番多いです。 ハードウエアマニュアルにバッファ動作の説明があり色々と 試しましたがうまくバッファ動作しませんでした。 下記は、タイマの初期化部分です。 かなり長いですがご勘弁ください。 ;*** チャンネル 0 *** ... ;*** チャンネル 1 *** MOV.B #B'00100010,R0L MOV.B R0L,@D_TCR_1_ADR ; タイマ コントロール レジスタ _1 アドレス ; 76543210 ; |||||||+---- TPCS0 クロックセレクト ; ||||||+----- TPCS1 内部クロック:φ/4でカウント(20MHz/2=5.0MHz) ; |||||+------ TPCS2 ; ||||+------- CKEG0 クロックエッジ ; |||+-------- CKEG1 立ち上がりエッジでカウント ; ||+--------- CCLR0 カウンタクリア ; |+---------- CCLR1 GRA のコンペアマッチにてTCNTクリア ; +----------- CCLR2 ; MOV.B #B'10001000,R0L MOV.B R0L,@D_TIORA_1_ADR ; タイマ I/O コントロール レジスタ AB_1 ; 76543210 ; |||||||+---- IOA0 I/O コントロール セレクト A ; ||||||+----- IOA1 禁止 ; |||||+------ IOA2 ; ||||+------- (1) ; |||+-------- IOB0 I/O コントロール セレクト B ; ||+--------- IOB1 禁止 ; |+---------- IOB2 ; +----------- (1) ; MOV.B #B'10001000,R0L MOV.B R0L,@D_TIORC_1_ADR ; タイマ I/O コントロール レジスタ CD_1 ; 76543210 ; |||||||+---- IOC0 I/O コントロール セレクト C ; ||||||+----- IOC1 禁止 ; |||||+------ IOC2 ; ||||+------- (1) ; |||+-------- IOD0 I/O コントロール セレクト D ; ||+--------- IOD1 禁止 ; |+---------- IOD2 ; +----------- (1) ; MOV.B #B'11100001,R0L MOV.B R0L,@D_TIER_1_ADR ; タイマ インタラプト イネーブル レジスタ _1 ; 76543210 ; |||||||+---- IMIEA 割り込み許可 ; ||||||+----- IMIEB コンペアマッチ A ; |||||+------ IMIEC ; ||||+------- IMIED ; |||+-------- OVIE オーバーフロー割り込み禁止 ; +++--------- (1) ; MOV.B #B'11111000,R0L MOV.B R0L,@D_POCR_1_ADR ; PWMモード アウトプット レベル コントロール レジスタ _1 ; 76543210 ; |||||||+---- POLB ローアクティブ ; ||||||+----- POLC ローアクティブ ; |||||+------ POLD ローアクティブ ; +++++------- (1) ; MOV.W #250,R0 ; 250=20KHz MOV.W R0,@D_GRA_1_ADR ; タイマ ジェネラル レジスタ A_1 MOV.W #125,R0 ; 125=Duty50% MOV.W R0,@D_GRC_1_ADR ; タイマ ジェネラル レジスタ C_1 ; ;*** 共通 *** MOV.B #B'10001110,R0L MOV.B R0L,@D_TMDR_ADR ; タイマ モード レジスタ ; 76543210 ; |||||||+---- SYNC タイマ 1&2 独立動作 ; ||||+++----- (1) ; |||+-------- BFC0 GRA_0とGRC_0は、通常動作 ; ||+--------- BFD0 GRB_0とGRD_0は、通常動作 ; |+---------- BFC1 GRA_1とGRC_1は、通常動作 ; +----------- BFD1 GRB_1とGRD_1は、バッファ動作←使用不可 ; MOV.B #B'10111000,R0L MOV.B R0L,@D_TPMR_ADR ; タイマ PWM モード レジスタ ; 76543210 ; |||||||+---- PWMB0 FTIOB0は、通常動作 ; ||||||+----- PWMC0 FTIOC0は、通常動作 ; |||||+------ PWMD0 FTIOD0は、通常動作 ; ||||+------- (1) ; |||+-------- PWMB1 FTIOB1は、PWMモード←通常動作にしても ; ||+--------- PWMC1 FTIOC1は、PWMモード 使用不可 ; |+---------- PWMD1 FTIOD1は、通常動作 ; +----------- (1) ; MOV.B #B'10000000,R0L MOV.B R0L,@D_TFCR_ADR ; タイマ ファンクション コントロール レジスタ ; 76543210 ; |||||||+---- CMD0 コンビネーションモード ; ||||||+----- CMD1 チャンネル 0&1 通常動作 ; |||||+------ OLS0 出力レベルセレクト ; ||||+------- OLS1 出力レベルセレクト ; |||+-------- ADTRG A/D外部トリガ無効 ; ||+--------- ADEG A/Dトリガエッジ山 ; |+---------- STCLK 外部クロック入力無効 ; +----------- (1) ; MOV.B #B'10011111,R0L MOV.B R0L,@D_TOER_ADR ; タイマ アウトップト マスタ イネーブル レジスタ ; 76543210 ; |||||||+---- EA0 FTIOA0端子出力禁止 ; ||||||+----- EB0 FTIOB0端子出力禁止 ; |||||+------ EC0 FTIOC0端子出力禁止 ; ||||+------- ED0 FTIOD0端子出力禁止 ; |||+-------- EA1 FTIOA1端子出力禁止 ; ||+--------- EB1 FTIOB1端子出力許可 ; |+---------- EC1 FTIOC1端子出力許可 ; +----------- ED1 FTIOD1端子出力禁止 ; MOV.B #B'00000000,R0L MOV.B R0L,@D_TOCR_ADR ; タイマ アウトップト コントロール レジスタ ; 76543210 ; |||||||+---- TOA0 FTIOA0端子0出力 ; ||||||+----- TOB0 FTIOB0端子0出力 ; |||||+------ TOC0 FTIOC0端子0出力 ; ||||+------- TOD0 FTIOD0端子0出力 ; |||+-------- TOA1 FTIOA1端子0出力 ; ||+--------- TOB1 FTIOB1端子0出力 ; |+---------- TOC1 FTIOC1端子0出力 ; +----------- TOD1 FTIOD1端子0出力 ; MOV.B #B'11111111,R0L MOV.B R0L,@D_TSTR_ADR ; タイマ スタート レジスタ ; 76543210 ; |||||||+---- STR0 チャンネル 0 カウンタスタート ; ||||||+----- STR1 チャンネル 1 カウンタスタート ; ++++++------ (1) ____________________ ダイトパワートロン株式会社 501-6331 岐阜県羽島市堀津町横手2-109 開発設計課 小寺 勝 TEL:058-398-5122 FAX:058-398-2043 URL:http://www.powertron.co.jp/ E-mail:mkodera@xxxxxxxxxxxxxxx  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄