RX621でウォッチドッグタイマ使いたいのですが

yoshiと申します。

RX621を使用しております。

ウォッチドッグタイマを10ms毎にカウントクリアさせたいと思っております。

void init_wdt(void){

 WDT.WRITE.RSTCSR = 0x5A40;

 WDT.WRITE.TCSR = 0xA566;

}

と初期設定を記述するとHEWでコンパイルエラーが発生いたします。

 Struct "<unnamed>" has no field "RSTCSR"

 Struct "<unnamed>" has no field "TCSR"

初期設定はその他に記述しなければならない項目があるのでしょうか。

ご教授くださいますよう宜しくお願いいたします。

 

Parents
  • yoshiさん
    >Struct "<unnamed>" has no field "RSTCSR"
    >Struct "<unnamed>" has no field "TCSR"
    RSTCSRとTCSRが構造体定義されていなのでエラーになっていますから
    iodefine.hの中を確認して見当たらないようであれば
    定義を追加すればよいと思いますよ
    RX621のハードウェアマニュアルも確認してみてください
    WDT.WRITE.RSTCSR とでしたか?
    WRITEというのは初めてですWORDとかではないのですか
    HEWでRX621をやっていないので定かではないですが。
  • IKUZO様
    ご回答いただきまして、誠にありがとうございました。

    iodefine.hでは下記のように書かれておりましたので、
     WDT.WRITE.RSTCSR = 0x5A40;
     WDT.WRITE.TCSR = 0xA566;
    といたしました。
    ご多用のところ申し訳ございませんが、
    ご回答くださいますようよろしくお願い申し上げます。

    iodefine.hの内容になります。
    union un_wdt {
    struct {
    union {
    unsigned char BYTE;
    struct {
    unsigned char :1;
    unsigned char TMS:1;
    unsigned char TME:1;
    unsigned char :2;
    unsigned char CKS:3;
    } BIT;
    } TCSR;
    unsigned char TCNT;
    char wk0[1];
    union {
    unsigned char BYTE;
    struct {
    unsigned char WOVF:1;
    unsigned char RSTE:1;
    } BIT;
    } RSTCSR;
    } READ;
    struct {
    unsigned short WINA;
    unsigned short WINB;
    } WRITE;
    };

    #define WDT (*(volatile union un_wdt __evenaccess *)0x88028)
  • IKUZO様
    下記のように記述したところ、エラーは発生いたしませんでした。
    ありがとうございました。
    WDT.WRITE.WINA = 0xA540;//WINA:TCSR
    WDT.WRITE.WINB = 0x5AFC;//WINB:RSTCSR.RSTE
Reply
  • IKUZO様
    下記のように記述したところ、エラーは発生いたしませんでした。
    ありがとうございました。
    WDT.WRITE.WINA = 0xA540;//WINA:TCSR
    WDT.WRITE.WINB = 0x5AFC;//WINB:RSTCSR.RSTE
Children
No Data