ホーム フォーラム Texas Instruments マイコン C2000 PIEACKのクリアについて

このトピックには2件の返信が含まれ、2人の参加者がいます。6 年、 4 ヶ月前 d.o. さんが最後の更新を行いました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #2303 返信

    d.o.
    参加者

    PIEACKのクリアについて

    デバイス型番:TMS320F28379D

    割り込み時のPIEACK のクリア方法について
    (TMS320C2000:Piccolo MCUのソフトウェア開発入門 :JAJA230A)では Or でクリアすると
    意図しないACKビットがクリアされてしまうので推奨しないとあります。

    自身のソースで Orクリアしていた箇所があったため修正していたのですが、
    サンプルソースで提供されている USBドライバで Orクリアされている箇所がありました。
    こちらは意図的に Or でクリアしているのでしょうか
    = で修正してかまわないのでしょうか?

    記載箇所はサンプルソースのV210 で
    usb_hal.c の f28x_USB0DeviceIntHandler() などです
    PieCtrlRegs.PIEACK.all |= 0x0100; と記載されています。

    #2307 返信
    Ge
    Ge
    従業員

    Bitフィールド単位での書き込み(PieCtrlRegs.PIEACK.bit.ACK1 など)でなければ問題ございませんので、以下の記載で問題ございません。

    PieCtrlRegs.PIEACK.all |= 0x0100;

    ただし、上記の記述の場合、無駄なRead modify write が発生しますので、無駄に時間がかかります。よって、御社ですでに記載されているように、PieCtrlRegs.PIEACK.all = 0x0100;と記載する方法が推奨されます。

    #2310 返信

    d.o.
    参加者

    わかりました。
    PieCtrlRegs.PIEACK.all = 0x0100;と修正するようにします

3件の投稿を表示中 - 1 - 3件目 (全3件中)