打印
[ZLG-MCU]

LPC935的CCU定时重装值问题

[复制链接]
1397|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linhai1986|  楼主 | 2009-5-9 23:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LPC935的两个计时器用完了,还要一个定时1S想用CCU来做,可是不管怎么改动TOR2H,TOR2L的值,定时的时间感觉没有变化,但如果改动TPCR2的分频却可以变动定时的时间,不知哪出问题了,请高手赐教.

 

下面程序50分频的时候约1秒3,

        ORG     0000H
        AJMP    INIT
        ORG     005BH
        JMP     CCU
        ORG     0100H
INIT:   mov     p1m1,#01h
        mov     p1m2,#01h
        MOV     56H,#0f5h;0eah;R0
        MOV     57H,#1fh;60h;R7
        MOV     TOR2H,56H
        MOV     TOR2L,57H
        MOV     TPCR2H,#00
        MOV     TPCR2L,#10       ;50分频
        MOV     TCR20,#00000001B ;CCU倒计定时
        MOV     TICR2,#80H       ;CCU定时中断使能
        SETB    ECCU             ;开CCU总中断使能
        SETB    EA               ;开总中断
        jmp     $
        
        
CCU:    PUSH    PSW
        PUSH    ACC
        
 
        CPL     P1.0    ;实验小灯

        MOV     TIFR2,#00H      ;清除中断标志
        MOV     TCR20,#00000000B ;关CCU倒计定时

        MOV     TCR20,#00000001B ;CCU倒计定时


ccuex:
        POP     ACC
        POP     PSW
        RETI
        
        end

相关帖子

沙发
liqindz| | 2009-5-11 23:13 | 只看该作者

你去仔细看看人家操作定时器的例程在写程序也不迟

使用特权

评论回复
板凳
xiaoxin1986| | 2009-5-13 00:55 | 只看该作者

re

使用CCU定时器进行定时,要自动重装初值,注意TCR21中的TCOU2要置1

; File:CCUTEST1.ASM
; 功能:使用CCU定时器进行定时,并控制LED闪动。
; 说明:将跳线器J27短接到OCA端,以控制D6;
;       通过跳线器J8、J9选择高频晶振6MHz。

$NOMOD51
$INCLUDE (REG932.INC)

T2_CNT  DATA 30H  ; 定义一变量,用于软件定时
LEDCON  BIT P2.6  ; LED控制口线,为0时点亮

  ORG 0000H
  AJMP MAIN

  ORG 005BH 
  AJMP INTS_CCU ; CCU中断入口

  ORG 0100H
MAIN:  MOV P2M1,#0C0H ; 设置IO口工作模式
  MOV P2M2,#0C0H

  CPL  LEDCON
  MOV T2_CNT,#0
  ACALL INI_CCU  ; 初始化CCU并设置中断
  SJMP $  ; 等待定时器中断

; 初始化CCU
; 设置定时器重装值(205mS时),时钟源设置,并打开中断设置等。
INI_CCU:
  MOV TOR2H,#0F0H ; 设置CCU定时器重装值
  MOV TOR2L,#000H ; TH2,TL2可先不设置

  MOV TPCR2H,#00 ; 使用PCLK时钟源,并进行10分频
  MOV TPCR2L,#10 

  MOV TCR20,#00000001B; 设置基本定时器,递增计数

  MOV TCR21,#80H 
    
  MOV TICR2,#80H ; 设置CCU中断使能寄存器
  SETB ECCU  ; 打开CCU中断
  SETB EA  
  RET


; CCU定时器中断处理 
; 注:定时器值会自动重装,TH2,TL2
INTS_CCU: 
  MOV A,TISE2
  ANL A,#07H
  CJNE A,#07H,INTS_CEXT ;判断中断源,若不为CCU定时器中断,退出

  INC T2_CNT  
  MOV A,T2_CNT
  CJNE A,#10,INTS_CEXT
  MOV T2_CNT,#0
  CPL LEDCON
INTS_CEXT: MOV TIFR2,#00H  ;清除中断标志
  RETI


  END

使用特权

评论回复
地板
linhai1986|  楼主 | 2009-5-13 01:18 | 只看该作者

谢谢3楼的

使用特权

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

本版积分规则

172

主题

1451

帖子

0

粉丝