导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→还是那个2051正脉冲采集的问题

* 52353: 还是那个2051正脉冲采集的问题

   mcuer 
mcuer发表的帖子 

 还是那个2051正脉冲采集的问题
我改了一下计数方式
TCON=0H
TMOD=00011001B

我在计数开始前置TL0=0FFH,TH0=0FFH
中断里是这样处理的:
INT_T0:  PUSH  ACC
  PUSH  PSW
  MOV  TL0,#06H  ;(4*3)uS/2  
  MOV  TH0,#0H
  SETB  OTHERFLAG.4
  POP  PSW
  POP  ACC
  RETI

TL0,TH0中累加的值就是脉冲的宽度。各位达人,这样用T0计数可以吗?

然后在频率模块里检查TL0,TH0里累计的值得到脉冲宽度。
FREQUENCY_CHK: JB  OTHERFLAG.2,F_CHK
  JB  OTHERFLAG.3,F_GET
  JB  OTHERFLAG.5,F_WAIT
  CLR  TIMEFLAG.0
  MOV  T14MS,#07H
  SETB  OTHERFLAG.5
  
F_WAIT:  JB  TIMEFLAG.0,F_EXIT1
  JB  P3.2,F_EXIT_1
  MOV  TL0,#0FFH
  MOV  TH0,#0FFH
  CLR  OTHERFLAG.4
  SETB  TR0
  SETB  OTHERFLAG.3
  CLR  TIMEFLAG.0
  MOV  T14MS,#07H
  RET
  
F_EXIT1: ANL  OTHERFLAG,#11000011B
  CLR  SYSSTATE.1
F_EXIT_1: RET
  
  
F_GET:  JB  TIMEFLAG.0,F_EXIT1
  JNB  OTHERFLAG.4,F_EXIT_1
  JB  P3.2,F_EXIT_1
  CLR  TR0
  SETB  OTHERFLAG.2
  ANL  OTHERFLAG,#11000111B
  RET
  
  
F_CHK:  MOV  A,IMPULSELBAK
  CLR  C
  SUBB  A,TL0
  MOV  R6,A
  MOV  A,IMPULSEHBAK
  SUBB  A,TH0
  
  JC  F_CHK_HIGH
  
  MOV  IMPULSELBAK,TL0
  MOV  IMPULSEHBAK,TH0
  
  JNZ  F_CHK_ERROR
  ADD  A,#0FAH
  JZ  F_CHK_ERROR
  
  SUBB  A,R6    
  JC  F_CHK_ERROR
  
  SETB  SYSSTATE.1
  SETB  OTHERFLAG.1
  ANL  OTHERFLAG,#11000011B
  INC  CUMULATE
  RET

F_CHK_HIGH: MOV  A,TL0
  CLR  C
  SUBB  A,IMPULSELBAK
  MOV  R6,A
  MOV  A,TH0
  SUBB  A,IMPULSEHBAK
  
  MOV  IMPULSELBAK,TL0
  MOV  IMPULSEHBAK,TH0
  
  JNZ  F_CHK_ERROR
  
  MOV  A,R6
  SUBB  A,ALLOW_RANGE
  JNC  F_CHK_ERROR
  SETB  SYSSTATE.1
  SETB  OTHERFLAG.1
  ANL  OTHERFLAG,#11000011B
  MOV  CUMULATE,#0
  RET
  
F_CHK_ERROR: CLR  SYSSTATE.1
  ANL  OTHERFLAG,#11000011B
  MOV  CUMULATE,#0
  RET


实际得到的结果不正常,好象是采集的数据不对,如何解决?

发表时间:2004年4月11日0:56:47

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  52354.[详细]是不是T0计时器我哪没用对啊?
摘要:......(无内容)
- [mcuer][965次] 2004年4月11日

  52373.[详细]各位达人看过来~
摘要:......(无内容)
- [mcuer][849次] 2004年4月11日

  52375.[详细]救命啊~我被这个问题搞醉了
摘要:......(无内容)
- [mcuer][824次] 2004年4月11日

[上一篇帖子]:是不是T0计时器我哪没用对啊?
[下一篇帖子]:电路开发项目主要内容:PCI电路板设计以及相应的驱动程序。电路要求:4路16位高速D/A输出(<