打印

请教中断问题

[复制链接]
1981|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lixiang69|  楼主 | 2008-3-7 18:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在SH69P43中
;***********************
TIMER1_INT:
    STA    AC_HOLD,00H
    ANDIM    IRQ,1101B
    LDI    IE,0FH
    LDA    AC_HOLD,00H
    RTNI....................(1)
;***********************
PORT_INT:
    STA    AC_HOLD,00H
    ANDIM    IRQ,1110B
    LDI    PORT_INT_FLAG,01H
    LDI    IE,0101B
    LDA    AC_HOLD,00H
    RTNI
这两个都是中断程序,为什么TIMER1中断后执行到标号(1)时还会向下继续执行PORT_INT中断(PORT_INT中断还没有发生)
沙发
warm_ice| | 2008-3-8 09:26 | 只看该作者

这样

如果是这样,多半是仿真系统不正常,建议您重新检查仿真器与仿真板之间的联线,看是否有接触不良的现象,另外,请按照P43仿真板的使用说明正确设置,看一下是否会正常.

使用特权

评论回复
板凳
lixiang69|  楼主 | 2008-3-8 18:35 | 只看该作者

你好

我想对SH69P43的PB.2口置1,置0而不干扰其他位,下面的程序可以吗?有没有更好的方法?谢谢!
PB.2置0:
    LDA    PB,00H
    STA    PORT_HOLD,00H
    ANDIM    PORT_HOLD,1011B
    STA    PB,00H    
PB.2置1:
    LDA    PB,00H
    STA    PORT_HOLD,00H
    ORIM    PORT_HOLD,0100B
    STA    PB,00H
其中PORT_HOLD是个积存器

使用特权

评论回复
地板
warm_ice| | 2008-3-8 18:52 | 只看该作者

可以

这样做是可以的,或者也可以用PORT_HOLD这个寄存器作PORTB的缓存,也就是说对PORT_HOLD这个寄存器与PB口的状态始终一致,要对PB口操作时,先对这个缓存操作,再存回BUFFER即可.

使用特权

评论回复
5
lixiang69|  楼主 | 2008-3-10 17:32 | 只看该作者

非常感谢!

明白您的意思了,谢谢!不过我想那样如果对PA~PD的所有端口都位操作时,会占用很多RAM积存器,因为每个端口都要有对应的PORT_HOLD这个寄存器,我想的对吗?谢谢!

使用特权

评论回复
6
warm_ice| | 2008-3-12 09:26 | 只看该作者

应该是的

PA~PD只需要4个寄存器,对程序来说,应该问题不大.这样做主要是确保程序可靠.

使用特权

评论回复
7
lixiang69|  楼主 | 2008-3-13 15:28 | 只看该作者

你好

你好,我买的开发工具带 的光盘里有个(PRO-01软件及相关资料 和 PRO-03软件及升级文件),请问这两个是做什么用的?谢谢!

使用特权

评论回复
8
warm_ice| | 2008-3-13 19:08 | 只看该作者

回楼上的朋友

PRO01是专用烧录软件,供中颖几颗老的产品使用.
PRO03也是专用烧录软件,提供绝大部分中颖产品的烧录功能.

使用特权

评论回复
9
lixiang69|  楼主 | 2008-3-15 17:31 | 只看该作者

你好

你好,请问我在 RICE66 中编写的代码,怎样查看代码总量是否超过 芯片的ROM,也就是说怎样知道我 写了多少K的程序,谢谢!

使用特权

评论回复
10
warm_ice| | 2008-3-17 09:06 | 只看该作者

回楼上的朋友

如果没有用到ORG指令,可以在程序编译后在最后一行指令行处点击鼠标右键,会显示PC指针的值,这样就清楚了已经使用的空间.

或者将编译好的OBJ文档调入烧录程序中,可以看到有代码的部分和没有代码的部分,您就清楚了还有多少空间.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

317

帖子

3

粉丝