3800|5

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于定时器中断的问题 [复制链接]

我写的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那么写对吧?
谢谢

最新回复

现在可以确定时钟动了,但就是不进中断,周期还在循环  详情 回复 发表于 2008-3-5 04:20
点赞 关注

回复
举报

62

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你的主程序中EVAIFRA,EVAIMRA
没有初始化。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
初始化为
*EVAIFRA = 0X0400;
  *EVAIMRA = 0X0400;   
我在中断中设置断点发现根本就没进中断啊?
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

4
 
好像我根本就没启动定时器
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
感觉你SCSR1设置有问题,你没有使能EVA CLKEN模块时钟。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
现在可以确定时钟动了,但就是不进中断,周期还在循环
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
报名赢【小米双肩包、contigo水杯】 | TI MSPM0 系列 MCU 再添新成员
了解TI 前沿新品——高性能与高性价比的优秀组合 MSPM0G351x / MSPM0L111x,4月24日(周四)上午10:00直播~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 2

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表