首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

模减计数器调试时的奇怪问题(召唤高手阿)

模减计数器调试时的奇怪问题(召唤高手阿)

; export symbols
XDEF main ; export 'Entry' symbol
ABSENTRY main ; for absolute assembly: mark this as application entry point

; include derivative specific macros
INCLUDE 'mc9s12dg128.inc'

ROMStart EQU $4000 ; absolute address to place code/constant data

; variable/data section
ORG RAMStart ; Insert here your data definition.
VELOCITY equ $1000;

; code section
ORG ROMStart
main:
LDS #$1FFF
LDAB #3;
STAB REFDV;
LDAB #4;
STAB SYNR;
wait:BRCLR CRGFLG,#$08,*;
BSET CLKSEL,#$80; set the bus clock to 20M



LDD #$00;
STD fuck;

LDAA #$90
STAA TSCR1;

LDAA #$01
STAA TCTL4

LDD #$0000
STD PACN10

LDAA #$40 ;Enable the PACB
STAA PBCTL

CLI
LDD #$A000 ;load the value for timer
STD MCCNT

LDAA #$07 ;
STAA TSCR2

LDAA #$B7 ;Set the MDC.Interrupt enable;Set the mode for onece
STAA MCCTL ;

LDAA #$FF
STAA DDRA

LDAA #$FF
STAA PORTA





mainloop:JMP mainloop;

INTT0:

LDAA #$FF;
STAA MCFLG;

BRCLR PORTA,mPORTA_BIT0,NEXT_0;
LDAA #$00;
JMP NEXT
NEXT_0:
LDAA #$FF;
NEXT:
STAA PORTA;

LDD #$A000
STD MCCTL;
; BRSET COUNTFLAG,#$01,OUT

; STD VELOCITY2

; ADDD VELOCITY ;Hold the number of pulse



RTI
;**************************************************************
;* Interrupt Vectors *
;**************************************************************
ORG $FFFE
DC.W main ; Reset Vector

ORG $FFCA
FDB INTT0 ;

以上是我在调试MC9S12DG128的模减计数器时写的汇编代码,目的是让模减计数器计数到零,产生一个中断,中断首先使端口A的输出反向,然后启动模减计数器以同样的初值乡下计数,以此循环,方波的周期是模减计数器定时的两倍, 以查看计数器是否正常工作。
LDD #$A000
STD MCCTL;
$A000是存入定时器的值,当这个值大于等于$8000时,端口A能够输出方波,但是频率不会随定时器设定值的变化而变化,当这个值小于$8000时,端口A完全没有输出了,这个问题困扰了我好久。
请问高手些,是我寄存器设置有问题吗,有什么好的建议!谢谢大家乐!
问题已解决,
LDD #$A000
STD MCCTL;
不知道什么时候把这一句写错了,呵呵!
返回列表