This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于INTM

请问C2000如何读取INTM的值,就是如何能知道当前中断是否开启?

  • INTM是一个标志位,存在于ST1寄存器中。

    ST1是CPU的寄存器,所以你可以连接目标芯片后查看CPU寄存器。

    CCS v3.3菜单view下有一个cpu register或core registers,v4/5可以在菜单view下有register,然后core registers下有ST1。

  • 我是希望在程序里能读到个这个标志,但在头文件里并没有看到ST1寄存器。

  • 这是CPU寄存器,所以不会在头文件里,你也不可以在程序里读取。

  • 那IFR,IER不是也可以访问吗

  • 呃,不一样的IER有专门的指令:MOV loc16,IER;ST1没有。

    有个比较笨的办法。我抛砖引玉一下。

    比如:

    asm(" PUSH AR1:AR0 ");

    asm(" PUSH DP:ST1");

      asm(" POP  AR1:AR0 ");

      asm(" MOVW DP,#0x10 ");

      asm(" MOVW @0X5,AR0 ");

      asm(" POP  AR1:AR0 ");

    ST1就在0x405的字段中。