关于定时器中断的问题

narrzze   2008-2-12 12:58 楼主
我写的C程序:希望在执行中断后将IOPF6脚的小灯点亮,MAIN中是暗的,执行中断亮:
#include \"f2407regs.h\"
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <string.h>

#define uint unsigned int

void main(void)
{
  asm(\" setc INTM \";
  asm (\" clrc CNF \";        /*映射数据存储空间*/
  asm (\" clrc OVM \";        /*累加器中结果正常溢出*/
  asm (\" setc SXM \");        /*抑制符号扩展*/
  *SCSR1 = 0x0001;           /*clkout输出CPU时钟,进入IDLE1低功耗模式
                                 不倍频,关断ADC,无效地址复位*/
  *WDCR  =  0X0E8;              /*WDOVERRIDE默认为1,禁止看门狗*/
  *IMR = 0X0004;
  *IFR   = 0Xffff;            /*清除所有中断标志*/
  *T1CON = 0X974c;             /*0001011000001100,t1连续增计数,64分频,内部时钟*/
  *T1CNT = 0X00;
  *MCRC = *MCRC & 0xbfff;
  *PFDATDIR = *PFDATDIR | 0x4000;
  *PFDATDIR = *PFDATDIR & 0xffbf;
  asm(\" clrc INTM \");
  while(1)
  {
  ;  
  }
}

void interrupt T1INT()
{volatile int flag,i;
*T1CNT = 0X00;
*MCRC = *MCRC & 0xbfff;                    
*PFDATDIR = *PFDATDIR | 0x4040;
asm(\" setc INTM \");
flag = *EVAIFRA & 0X0400;
if (flag != 0x0400)
  {
   asm(\" clrc INTM \");
   return;
  }
*EVAIFRA = *EVAIFRA | 0Xffff;   /*清定时器1上溢中断标志*/
i++;
*MCRC = *MCRC & 0xbfff;                    
*PFDATDIR = *PFDATDIR | 0x4040;
if(i==7)
   {i=0;
*MCRC = *MCRC & 0xbfff;                    
*PFDATDIR = *PFDATDIR | 0x4040;
   }
}

void interrupt nothing()
{  
  return;
}
以下是中断向量程序:

  .title        \"vectors.asm\"
  .ref          _c_int0,_nothing,_T1INT
  .sect        \".vectors\"
       
rsvect:    B    _c_int0
INT1:     B    _nothing
INT2:     B    _T1INT
INT3:     B    _nothing
INT4:     B    _nothing
INT5:     B    _nothing
INT6:     B    _nothing
为什么实现不了呢?我试了,MAIN中没什么问题,就是好像不进中断,在就是请大虾看看我在中断中的FOR语句延时1S那么写对吧?
谢谢

回复评论 (5)

你的主程序中EVAIFRA,EVAIMRA
没有初始化。
点赞  2008-2-13 00:49
初始化为
*EVAIFRA = 0X0400;
  *EVAIMRA = 0X0400;   
我在中断中设置断点发现根本就没进中断啊?
点赞  2008-2-13 04:28
好像我根本就没启动定时器
点赞  2008-3-3 07:44
感觉你SCSR1设置有问题,你没有使能EVA CLKEN模块时钟。
点赞  2008-3-3 10:25
现在可以确定时钟动了,但就是不进中断,周期还在循环
点赞  2008-3-5 04:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复