打印
[ZLG-MCU]

求助LPC938捕获问题

[复制链接]
1779|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chunyu-lee|  楼主 | 2011-9-15 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LPC, ov, TI, hm, ic
================================================================
;问题:测量的波形周期大于1ms
;采用外部晶振,2M  divm=0;  ccu频率四分频
;所以计数1为4us 一个周期计数差最少为250(0xfa),而实际试验时发现计数差会比245(0xf5)小

;-----------------------------------------------------------------
DIVM           EQU     95H
TPCR2H         EQU     0CBH
TPCR2L         EQU     0CAH

P0M1           EQU     84H
P0M2           EQU     85H
P1M1           EQU     91H
P1M2           EQU     92H


P2M1           EQU     0A4H
P2M2           EQU     0A5H
IEN1           EQU     0E8H  
  
IEN2           EQU     0D5H
TH2            EQU     0CDH
TL2            EQU     0CCH   ;CCU定时器计数器
OCRAH          EQU     0EFH   ;比较寄存器
OCRAL          EQU     0EEH
ICRAH          EQU     0ABH   ;捕捉寄存器
ICRAL          EQU     0AAH
TIFR2          EQU     0E9H   ;CCU中断标志寄存器
TICR2          EQU     0C9H   ;CCU中断控制寄存器
TCR20          EQU     0C8H
TCR21          EQU     0F9H   ;
CCCRA          EQU     0EAH   ;

FInterFirst    EQU     2   ;中断第一次


;=============================================================================
       ORG  0000H
       LJMP  Start
       ORG  0003
       RETI
       ORG  002BH   ;掉电检测 BOF
       RETI
       ORG  003BH   ;KBI中断 KBF
       RETI
       ORG  005BH   ;CCU中断 比较/捕获
       LJMP  Lab0927
   
;--------------------------------------------------
;程序区
       ORG  0070H

Start:
   MOV   SP,#0D0H      
   CALL  RegIntial   
   CLR   2BH.FInterFirst
   SETB  P2.0     ;关闭LED
   SETB  IEN1.4                 ;使能ECCU
   SETB  EA                     
   ORL   TICR2,#01H           
   ORL   TICR2,#08H           
Stopsub:
   JMP   StopSub
                    


;========================================================================
RegIntial:
   CLR   EA                           
   
   MOV   DIVM,#00H                ;Fcclk=2M  2~4机器周期(指令周期) 1M~0.5M  moto:约0.25M
                                  ;pclk=fcclk=1M
   MOV   TPCR2H,#00
   MOV   TPCR2L,#03H              ;ccuclk=0.25M

   MOV   P1M1,#29H
   MOV   P1M2,#0DEH       ;P1.0为输入,P1.5输入,其它为推挽输出
   MOV   P1,#04H
  
   MOV   P0M1,#3EH     ;P0.1 p0.2 p0.3 p0.4 p0.5输入
   MOV   P0M2,#00H
   MOV   P0,#0FFH

   MOV   P2M1,#80H     ;P2.0 p2.4 p2.5 输出,p2.7输入,其它也设为输出
   MOV   P2M2,#07FH    ;p2.2 p2.3 双向口
   MOV   P2,#0FFH
  
   MOV   TICR2,#00H
   MOV   TCR20,#01H
   MOV   CCCRA,#01H
   SETB  IEN1.4                  ;使能ECCU
   SETB  EA                     

   RET                           
;====================================================================
;中断子程序
;16 BIT timer
Lab0927:
   PUSH  ACC
   PUSH  PSW
   MOV   A,TIFR2
   JNB   ACC.0,aaaINT            
   ANL   TIFR2,#0FEH
   CPL   P2.0               ;通过看这个脚的波形,知道捕获中断什么时候进来了
   MOV   A,ICRAL                 
   MOV   57H,A                                         
   MOV   A,ICRAH                  
   MOV   58H,A                    
   JNB   2BH.FInterFirst,cccINT   
   MOV   A,57H                    
   CLR   C
   SUBB  A,59H                    
   MOV   59H,A                    
   MOV   A,58H                    
   SUBB  A,5AH                    
   MOV   5AH,A           ;计算出间隔值                              
                  
   MOV   A,59H                    
   CLR   C
   SUBB  A,#0F5H                  
   MOV   59H,A                    
   MOV   A,5AH                    
   SUBB  A,#00H          ;间隔值与立即数0xf5比较               
   MOV   5AH,A                                          
   JC    aa55                    
   jmp   cccINT
aa55:
   call  ErrorSub    ;不应该到此

cccINT:
   SETB  2BH.FInterFirst                             
   MOV   A,57H                    
   MOV   59H,A                    
   MOV   A,58H                    
   MOV   5AH,A  
                          
;ccu ocra中断
aaaINT:
   MOV   A,TIFR2
   JNB   ACC.3,INTE               
   ANL   TIFR2,#0F7H
INTE:
   POP   PSW
   POP   ACC
   RETI                           
;=========================================================
;死循环,中断停止使能
ErrorSub:

   setb  p1.1
   clr   ea
   clr   p2.0               ;灯一直亮
   jmp   ErrorSub











;==================================================================
   END
;==================================================================

nxp测试.rar

219.85 KB

相关帖子

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

本版积分规则

0

主题

2

帖子

1

粉丝