打印
[ZLG-ARM]

ARM 一个中断问题?

[复制链接]
1265|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Atmel51|  楼主 | 2007-11-22 07:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是周工LPC2131开发板,下面程序不能仿真出正确的结果!
//==========================================================
//[文件] main.c
//[说明] 定时中断0 定时0.5s 
//[作者] 
//[时间] 2007/11/19
//[实验目的] 定时0功能应用 中断方式 
//==========================================================
#include "config.h"


#define BEEP 1<<7
//----------------------------------------------------------
//函数名称:IRQ_Timer0()
//函数功能:定时器0中断服务程序,取反led控制口电平
//入口参数:无
//出口参数:无
//----------------------------------------------------------
void __irq IRQ_Timer0(void)
{
  if((IO0SET&BEEP)==0) IO0SET = BEEP;
  else IO0CLR = BEEP;
  
  T0IR = 0x01;//清除中断0标志
  VICVectAddr = 0x00;//通知VIC中断处理结束
}//end
//----------------------------------------------------------
//主功能函数部分 
int main (void)
{// add user source code 
  PINSEL1 = 0x00000000;
  IO0DIR = BEEP;
  
  IRQEnable();//IRQ中断使能
  
  //定时器0初始化
  T0TC = 0;//定时器0计数器清0
  T0PR = 0;//预分频寄存器为不分频
  T0MCR |= 0x00000003;//匹配控制寄存器设置 T0TC 复位 产生中断标志
  T0MR0 = Fpclk/2;//设置0.5s定时(Fpclk = 11.0592MHz 及1s震荡11.0592M次)
  T0TCR = 0x01;//启动定时器
  //定时器0初始化结束
  //设置定时器0中断IRQ
  VICIntSelect = 0x00;
  VICVectCntl0 = 0x20 | 0x40;
  VICVectAddr0 = (uint32)IRQ_Timer0;
  VICIntEnable = 1<<0x04;
  //定时器0中断IRQ设置结束 
  while(1);
  return 0;
}//end main
//End Of File

相关帖子

沙发
Atmel51|  楼主 | 2007-11-22 10:41 | 只看该作者

垃圾问题!不好意思了

提了一个垃圾问题!target.c中
VICIntEnClr = 0x00000000;就ok了!

使用特权

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

本版积分规则

4

主题

20

帖子

1

粉丝