Board logo

标题: 求助----关于MC68HC908GP32定时器溢出中断 [打印本页]

作者: matafeiyan    时间: 2007-3-26 22:22     标题: 求助----关于MC68HC908GP32定时器溢出中断

程序如下:
T1SC EQU $0020
T1CNTH EQU $0021
T1MODH EQU $0023
PTA EQU $0000
DDRA EQU $0004
ORG $8000
MAIN:
LDHX #$023F ;堆栈初始化
TXS
BSET 1,DDRA
LDA #%01100110 ;允许溢出中断、不启动计数、分频因子=64
STA T1SC
LDHX #$0000 ;计数寄存器初值=$0000
STHX T1CNTH

LDHX #$9600 ;设1秒产生1次溢出中断
STHX T1MODH ;预置寄存器设定值=1×(2457600/64)=$9600

BCLR 5,T1SC ;允许定时器1计数寄存器计数
CLI ;开放中断
timer1overflow:
PSHH ;保护H 寄存器
BRCLR 1,PTA,PTA1SET ;指示灯状态变换
BCLR 1,PTA
BRA PTA1CLR
PTA1SET:
BSET 1,PTA
PTA1CLR:
LDA T1SC ;清除定时器溢出标志位
BCLR 7,T1SC
PULH ;释放H寄存器
RTI
ORG $FFF2 ;定时器1溢出中断向量
DW timer1overflow
ORG $FFFE
DW MAIN
编译通过后,用winxp超级终端下载到芯片后,运行岀现如下情况:
>^P PC=0000.8000
>G 41414141414141414141414141414141414141
或岀现如下情况:
>^P PC=0000.8000
> (此处已按G,但没显示跳过)
请问这是怎么一回事?


作者: mist_24    时间: 2007-3-27 08:25

不会写点c代码啊?
作者: mist_24    时间: 2007-3-27 08:25

不会写点c代码啊?
作者: matafeiyan    时间: 2007-3-27 09:23

我是一位初学者,想用汇编来熟悉熟悉MC68HC908G32,请问上面这位你能解决这个问题吗?
作者: seuafu2005    时间: 2007-3-27 10:53

你用的是哪个编译调试软件?
推荐用codewarrior,用其中的PE来生成一些代码。
可以用反汇编来查看C生成的汇编代码
作者: matafeiyan    时间: 2007-3-27 21:30

我用得是ics08gpz,现在刚装了codewarrior,在codewarrior里Link 时,却停在 "DW timer1overflow" 通不过了。
作者: seuafu2005    时间: 2007-3-28 09:48

codewarrior的中断向量写中断服务程序一般不用这个方式
在prm文件里面声明
Vector ADDRESS 0xFFF2 timer1overflow




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0