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

版主请进

版主请进

;**************************************************************
;* 初始化定时器子程序 *
;**************************************************************
Init_timer:NOP
LDAB #$83 ;timer_int enable,pre_scale=128
STAB TSCR2
LDAB #$80 ;clr timer_overflew flag
STAB TFLG2
LDAB #HIGH(65535-7500)
STAB TCNTHi
LDAB #LOW(65536-7500) ;40ms
STAB TCNTLo
LDAB #$80
STAB TSCR1 ;timer_enable
RTC
;**************************************************************
;* 定时器溢出中断服务子程序 *
;**************************************************************
Int_timeroverflow: LDAB #$80
STAB TFLG2 ;clr int flag
LDAB #$00
STAB TSCR1 ;stop timer
LDAB #HIGH(65535-7500)
STAB TCNTHi
LDAB #LOW(65536-7500)
STAB TCNTLo ;load init_data
LDAB #$80
STAB TSCR1 ;enable timer
INC TIME
LDAB TIME
STAB PORTB
LDAB PORTA
COMB
STAB PORTA
RTI
以上是我使用定时器定20MS的程序,示波器在PA端看输出,在调试环境下调试完全正常,但是下到硬件上去以后,发现定时要长了很多,感觉像在中断子程序中TCNT没有付进值去,请问这是什么原因呢?
;**************************************************************
;* 初始化系统时钟子程序 *
;**************************************************************

Init_sys_timeDAB #1
STAB REFDV
LDAB #2
STAB SYNR ;init sys_time 48M,bus_time as 24M
Init_sys_time_wait:BRCLR CRGFLG,#8,* ;wait for PLL lock
BSET CLKSEL,#$80 ;select PLL clock
LDAA #$49
STAA FCLKDIV
STAA ECLKDIV ;init flash_write clock
RTC
这是我初始化系统时钟的程序。
我用的开发板是MC9S12EVKX!!谢谢
呵呵。版主,我发现问题了,TCNT只在调试的时候写操作才有意义啊!
为什么调试的时候可以写,而下下去就不行了呢?
还不如都不行!
非调试环境下是不是时钟信号不对呢?
这样为调试提供了方便。
海纳百川  有容乃大

返回列表