这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 2407,timer1,nbsp,nbsp 关于2407的timer1 

共2条 1/1 1 跳转至

2407,timer1,nbsp,nbsp 关于2407的timer1  急盼高人指点

院士
2006-09-17 18:14:16     打赏
2407,timer1,nbsp,nbsp 关于2407的timer1  急盼高人指点



关键词: timer1     关于     急盼     高人     指点    

院士
2006-12-22 22:43:00     打赏
2楼
问 我用的是2402,在使用他的timer1时,不知为什么不能产生中断,也就今不了中断程序 。timer1初始化都是按合众达公司的例程设置的,应该没问题,还发现不能改写wdcr的值,其值总是为00c7h,导致不能关闭wd 调了好长时间了也找不到原因,真急人那。哪位好人给看看。下面是源程序:
              .data                ;page1 B1块,装载到数据区300h
                                             ;由cmd文件确定存储位置
         b0   .word     0FFFEH     ;通用i/o端口的d0位为零
        GPR0 .word     0          ;通用目的寄存器
              .include  240xA.h
                     .include  240xAvect.h
                     .def      _c_int0
                     .text
_c_int0:
      LDP   #0H            ;短立即数寻址设置dp=0
                                  ;数据存储器地址范围为0000h~007fh
      CLRC  CNF            ;将B0映射到程序空间
    SPLK  #0000H,IMR     ;屏蔽所有中断 IMR中断屏蔽寄存器
    LACC  IFR            ;读中断标志 IFR->ACC
      SACL  IFR            ;ACC->IFR 将ifr中的数据读出在写入ifr
                                  ;则可以清所有中断标志
                           
    LDP   #00E0H               ;80*E0数据存储器地址范围为07000h~0707fh
      
      SPLK  #0A05H,SCSR1   ;PLL倍频系数为,即2*20=40m,使能eva模块
      
    SPLK  #000BH,SCSR2   ;SARAM映射到程序空间,微控制器方式
                             ;程序从片内开始,允许软件修改wd
                                            ;SARAM也映射到数据空间                          
      
    SPLK  #6FH,WDCR
      MAR   *,AR0

      LDP   #00E1H         ;设置dp=e1h 则地址为7080h~70FFh
      SPLK  #0000H,MCRA    ;定义iopan和iopbn作为通用io引脚
    SPLK  #0FF00H,MCRB   ;定义iopCn作为通用io引脚
    SPLK  #0000H,MCRC   ;定义iopen iopfn作为通用io  
                           ;2402无e f口,1个d口
    SPLK  #0FF00H,PADATDIR;所有引脚配置为输出,并置为高电平
    SPLK  #0FF00H,PBDATDIR;所有引脚配置为输出,并置为低电平
    SPLK  #0FFFFH,PCDATDIR;IOPC4引脚配置为输入,并置为高电平
MAIN:
;装入通用定时器1
      LDP   #00E8H           ;设置dp=e0h,则地址为7400~747fh 为外设页面
    SPLK  #0040h,GPTCONA   ;不起动模数转换,禁止所有通用定时器比较输出
                             ;比较输出极性 T1PIN强制为低电平,下溢,周期,比较
                             ;中断禁止
    SPLK  #0000H,T1CNT     ;清t1计数器
      
    SPLK  #1042H,T1CON     ;输入时钟预定标x/128 使用自己的定时器使能位,
                             ;使能定时操作,内部时钟,
                             ;D当计数值为零时,重装定时器比较寄存器,
                             ;使能定时器比较,
      
      SPLK  #0FFFFH,T1PR     ;设置周期寄存器t1pr
      SPLK  #00FFH,T1CMPR    ;设置比较寄存器ticmpr的值
    SPLK  #0780H,EVAIMRA   ;使能定时器1的上溢,丅溢,比较,周期中断。
    SPLK  #0FFFFH,EVAIFRA   ;清中断。
    LDP   #0H
      SPLK  #0002H,IMR       ;使能int2
      CLRC  INTM
      
WAIT:
      NOP
      B     WAIT             ;等待中断 程序总是在这等中断
    
GISR2:                       ;INT2通用中断程序
      LDP   #00E0H
         LACL  PIVR             ;将外设中断矢量值装入累加器  
      XOR   #002AH           ;GPT1上溢中断矢量
      BCND  SISR2A,EQ        ;
         LACL  PIVR             ;将外设中断矢量值装入累加器  
      XOR   #0029H           ;GPT1上溢中断矢量
      BCND  SISR29,EQ        ;
         LACL  PIVR             ;将外设中断矢量值装入累加器  
      XOR   #0028H           ;GPT1上溢中断矢量
      BCND  SISR28,EQ        ;
         LACL  PIVR             ;将外设中断矢量值装入累加器  
      XOR   #0027H           ;GPT1上溢中断矢量
      BCND  SISR27,EQ        ;
         RET
SISR2A:

      RET
SISR29:

      RET
SISR28:

      RET
SISR27:
     
      RET
      
DELAY:
      LAR   AR0,#01H;延时子程序
D_LOOP:
      RPT   #01H
      NOP
      BANZ   D_LOOP
      RET      
      
GISR1:RET
GISR3:RET
GISR4:RET
GISR5:RET
GISR6:RET
PHANTOM RET

      .end 1: 晕啊,简单问题,自己找去解决了,很不难的!!!如题!!!!!!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]