R8C/2D

R8C/2D(R5F212D7SNFP)のRDタイマー関連のSFRが書き換わりません(プログラム、ツール両方)。E8aとHEWの組み合わせで使用しています。

具体的には
trdstr = 0x0C;
と書いても01のままです。

何かわかりましたら教えてください。
Parents
  • ksjさん

    状況が良くわかりませんが
    trdstr = 0x05;
    trdstr = 0x04;
    という順番で先にCSEL0を1にしてから、TSTART0に0をライトした場合trdstrがどうなるか試してみてください。


    UMに以下の記述があります。

    14.4.12 タイマRD使用上の注意事項
    14.4.12.1 TRDSTRレジスタ
    • TRDSTRレジスタはMOV命令を使用して書いてください。
    • CSELi(i=0 ~ 1) ビットが“0”(TRDi レジスタとTRDGRAi レジスタのコンペア一致でカウント停止)の場合、TSTARTiビットに“0”(カウント停止)を書いても、カウントは停止せず、TSTARTiビットも変化しません。
    したがって、CSELiビットが“0”のとき、TSTARTiビットを変化させずに他のビットを変更したい場合は、TSTARTiビットに“0”を書いてください。
    また、プログラムでカウントを停止させる場合は、CSELiビットを“1”にした後で、TSTARTiビットに“0”を書いてください。同時に(1命令で)CSELiビットに“1”、TSTARTiビットに“0”を書いてもカウントは停止できません。
Reply
  • ksjさん

    状況が良くわかりませんが
    trdstr = 0x05;
    trdstr = 0x04;
    という順番で先にCSEL0を1にしてから、TSTART0に0をライトした場合trdstrがどうなるか試してみてください。


    UMに以下の記述があります。

    14.4.12 タイマRD使用上の注意事項
    14.4.12.1 TRDSTRレジスタ
    • TRDSTRレジスタはMOV命令を使用して書いてください。
    • CSELi(i=0 ~ 1) ビットが“0”(TRDi レジスタとTRDGRAi レジスタのコンペア一致でカウント停止)の場合、TSTARTiビットに“0”(カウント停止)を書いても、カウントは停止せず、TSTARTiビットも変化しません。
    したがって、CSELiビットが“0”のとき、TSTARTiビットを変化させずに他のビットを変更したい場合は、TSTARTiビットに“0”を書いてください。
    また、プログラムでカウントを停止させる場合は、CSELiビットを“1”にした後で、TSTARTiビットに“0”を書いてください。同時に(1命令で)CSELiビットに“1”、TSTARTiビットに“0”を書いてもカウントは停止できません。
Children
No Data