打印

为什么我的这段程序 进不去 T0 中断啊

[复制链接]
1712|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dedongxx|  楼主 | 2011-8-4 13:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <config.h>

#define led1  (1<<22)
#define led2  (1<<23)
#define led3  (1<<24)
#define led4  (1<<25)

///////////////////////////////////////////////////////////////////////
__irq __arm void irq_t0_led (void)
{
  while(1);
}
///////////////////////////////////////////////////////////////////////
void  int_timer_irq()
{
  T0TCR=0x00;
  VICVectAddr0=0x00;
  VICVectCntl0=0x00;
  VICIntSelect=0x00000000;
  VICVectCntl0=((1<<5)|0x04);
  VICVectAddr0=(uint32)irq_t0_led;
  T0IR=(T0IR|0x01);
  VICIntEnable=1<<4;
  
  T0PR=99;
  T0MCR=0x03;
  T0MR0=Fpclk/(99+1)/2;
  T0TCR=0x03;
  T0TCR=0x01;
  
}
///////////////////////////////////////////////////////////////////////
void  int_pll()
{
  PLLCON=1;
  switch(Fcclk/Fpclk)
  {
    case  1: APBDIV=1; break;
    case  2: APBDIV=2; break;
    case  4: APBDIV=0; break;      
  }
  switch(Fcco/Fcclk)
  {
    case  2: PLLCFG=((Fcclk/Fosc)-1)|(0<<5);break;
    case  4: PLLCFG=((Fcclk/Fosc)-1)|(1<<5);break;
    case  8: PLLCFG=((Fcclk/Fosc)-1)|(2<<5);break;
    case 16: PLLCFG=((Fcclk/Fosc)-1)|(3<<5);break;   
  }
  PLLFEED=0xaa;PLLFEED=0x55;
  while(PLLSTAT&(1<<10)==0);
  PLLCON=3;
  PLLFEED=0xaa;PLLFEED=0x55;
}
///////////////////////////////////////////////////////////////////////
void  main(void)
{
  PINSEL0=0x00000050;
  PINSEL1=0x00000000;
  IO0DIR=(led1|led2|led3|led4);
  int_pll();
  int_timer_irq();
  while(1)
  {
  }
}

相关帖子

沙发
xinzha| | 2011-8-4 14:31 | 只看该作者
没有打开cpsr中的中断使能。

使用特权

评论回复
板凳
dedongxx|  楼主 | 2011-8-4 16:42 | 只看该作者
怎么开启啊,我是新手,谢谢指教

使用特权

评论回复
地板
yang_max| | 2011-8-6 23:37 | 只看该作者
刚开始写程序的人,先参考官方例程,熟悉寄存器配置,少走弯路,因为很多东西还不清楚,自己看着写很累,熟练了就可以自己配了

使用特权

评论回复
5
xinzha| | 2011-8-8 11:28 | 只看该作者
__asm
{
mrs r0,cpsr
bic r0,r0,#0x80
msr cpsr,r0
}

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝