打印

关于TIMER定时时

[复制链接]
3130|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LDI   T1L,00H;timer1设置
LDI   T1H,00H
LDI   TM1,00H;2048分频
晶振选用4M晶振,芯片为69P42一个中断的周期不是0.524288s吧?怎么测出来的是131ms啊?
沙发
warm_ice| | 2010-1-18 11:33 | 只看该作者
请问是如何测出来的?

使用特权

评论回复
板凳
mugangzhu|  楼主 | 2010-1-18 11:35 | 只看该作者
我有数字示波器啊

使用特权

评论回复
地板
mugangzhu|  楼主 | 2010-1-18 11:35 | 只看该作者
用软件上的那个示波器也可以测出来啊

使用特权

评论回复
5
warm_ice| | 2010-1-18 11:53 | 只看该作者
按您的设置确实是0.524288s,您测出来的131ms只是它的1/4,您再确认一下是否是选择的4MHZ.

使用特权

评论回复
6
mugangzhu|  楼主 | 2010-1-18 11:55 | 只看该作者
对啊,确实是4M的晶振,软件上的示波器测出来的应该不会有问题吧?还有没有其他影响的因素呢?

使用特权

评论回复
7
warm_ice| | 2010-1-18 12:06 | 只看该作者
麻烦将您的设置及示波器测试截个图上来看看.

使用特权

评论回复
8
mugangzhu|  楼主 | 2010-1-18 12:32 | 只看该作者

设置的话就上面那些了啊

使用特权

评论回复
9
mugangzhu|  楼主 | 2010-1-18 12:33 | 只看该作者
TIMER1_ISP:
              STA AC1_BACK,00H
              ANDIM IRQ,1101B                           
              ORIM  F_TIMER,0010B                                                                  
TIMER1_END:   
              ORIM IE,0110B                        
              LDA AC1_BACK,00H
              RTNI

使用特权

评论回复
10
warm_ice| | 2010-1-18 13:14 | 只看该作者
麻烦您将其它程序屏蔽掉,只保留TIMER1的程序,主程序请NOP循环.
然后在TIMER1中断中翻转一个I/O口,即用EORIM  PORTX   1111B
然后再用示波器测试一下这个口的翻转情况.

使用特权

评论回复
11
mugangzhu|  楼主 | 2010-1-18 13:28 | 只看该作者
单独TIMER1工作是你说的那个时间啊可是为什么两个同时工作时就出现了那种情况啊

使用特权

评论回复
12
mugangzhu|  楼主 | 2010-1-18 13:34 | 只看该作者
LDI IE,0110B这个指令给两个定时中断产生了影响吗?

使用特权

评论回复
13
warm_ice| | 2010-1-18 13:35 | 只看该作者
那应该是你程序中有误操作,在其它地方有对TIMER1或是TIMER1中设置的标志位更改掉了.

使用特权

评论回复
14
mugangzhu|  楼主 | 2010-1-18 13:41 | 只看该作者
应该不会吧,我现在只要同时开两个定时器LDI IE,0110B TIMER1就不工作了,只有关闭TIMER0才能工作啊

使用特权

评论回复
15
warm_ice| | 2010-1-18 13:47 | 只看该作者
把程序主程序屏蔽掉,主程序只保留NOP循环, 保留TIMER0,TIMER1中断,再试一下.

如果这样还不行,请把这段程序贴上来我看看.

使用特权

评论回复
16
mugangzhu|  楼主 | 2010-1-18 13:53 | 只看该作者
行是行了,可是TIMER1的时间又不对了啊
;***************
;程序
;****************
               ORG       0000H
               JMP       REST                                         
               RTNI
               JMP       TIMER0_ISP               
               JMP       TIMER1_ISP               
               RTNI
;****************************
;TM0中断服务子程序
;****************************
TIMER0_ISP:
              STA AC_BACK,00H
              ANDIM IRQ,1011B                          
              ORIM F_TIMER,0001B ;设置“5ms 到”标志         
              BA0 TIMER0_END                                                      
TIMER0_END:   
              ORIM IE,0110B                        
              LDA AC_BACK,00H
              RTNI                                       
;****************************
; TM1中断服务子程序
;****************************
TIMER1_ISP:
              STA AC1_BACK,00H
              ANDIM IRQ,1101B                           
              ORIM  F_TIMER,0010B                                                                  
TIMER1_END:   
              LDI IE,0010B                        
              LDA AC1_BACK,00H
              RTNI                                                                  
;****************
;上电初始化
;*****************
REST:
               NOP
               NOP            
               LDI  DPL,00H
               LDI  DPM,03H
               LDI  DPH,00H               
POWER_RESET_1:
               LDI  INX,00H
               ADIM DPL,01H
               LDI  TEMP,00H
               ADCM DPM,00H
               BA3  POWER_RESET_2
               JMP  POWER_RESET_3
POWER_RESET_2:
               ADIM DPH,01H
POWER_RESET_3:
               SBI  DPH,01H
               BNZ  POWER_RESET_1
               SBI  DPM,04H
               BNZ  POWER_RESET_1              
               CALL XTJCQ_IST              ;初始化系统寄存器
XTJCQ_IST:
               ;PORT口初始化
               LDI   PORTA,00H
               LDI   PORTB,00H
               LDI   PORTC,0001B
               LDI   PORTD,0FH;打开上拉电阻使用低电平按键有效
               LDI   PORTE,00H
               LDI   PACR,0FH
               LDI   PBCR,0FH
               LDI   PCCR,1110B;输出口
               LDI   PDCR,1000B;输入口
               LDI   PECR,0FH              
               ;TIMER初始化
               LDI   T0,00H;选择外部时钟
               LDI   T0L,00H
               LDI   T0H,00H
               LDI   TM0,07H                                         
               LDI   T1L,00H;timer1设置
               LDI   T1H,00H
               LDI   TM1,00H;2048分频                                                                                    
               LDI   IE,0110B ;打开timer0、timer1中断                                                                                                         
                                                        
OUT3_3:      
              ANDIM PORTC,1101B;关闭PC.1输出
              ADI F_TIMER,0010B;定时时间是否到
              BA1 OUT3_3              
              ANDIM F_TIMER,1101B                                                        
OUT3_4:                           
              ORIM PORTC,0010B;PC.1有输出
              ADI F_TIMER,0010B;定时时间是否到
              BA1 OUT3_4              
              ANDIM F_TIMER,1101B              
              JMP OUT3_3                                                                                                                                                                                                                                                                                                           
               END

使用特权

评论回复
17
mugangzhu|  楼主 | 2010-1-18 13:55 | 只看该作者
TIMER1的中断时间又成了131ms了

使用特权

评论回复
18
warm_ice| | 2010-1-18 14:28 | 只看该作者
1.这段改成以下样子:
";TIMER初始化
LDI T0,00H;选择外部时钟
LDI TM0,07H
LDI T0L,00H
LDI T0H,00H
LDI TM1,00H;2048分频
LDI T1L,00H;timer1设置
LDI T1H,00H
LDI IE,0110B ;打开timer0、timer1中断"

2.这段改成这样:
TIMER1_ISP:
              STA AC1_BACK,00H
              ANDIM IRQ,1101B                           
              ORIM  F_TIMER,0010B                                                                  
TIMER1_END:   
              LDI IE,0110B                        
              LDA AC1_BACK,00H
              RTNI

使用特权

评论回复
19
mugangzhu|  楼主 | 2010-1-18 14:34 | 只看该作者
还是不行,时间还是131ms

使用特权

评论回复
20
mugangzhu|  楼主 | 2010-1-18 14:34 | 只看该作者
为什么就不行啊,这两个定时器肯定相互产生了影响啊

使用特权

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

本版积分规则

70

主题

358

帖子

1

粉丝