微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 关于6410定时器的中断问题

关于6410定时器的中断问题

时间:10-02 整理:3721RD 点击:
unsigned int i=0;
void GPIO_Init()
{
        rGPIOMCON |= (0X01<<0)|(0X01<<4)|(0X01<<8)|(0X01<<12);//令控制led的引脚为出模式
        rGPIOMDAT  = 0X0F;//关闭led灯
        rGPIOMPUD  = 0;        
}
void TIMER_Init()
{
        rTCFG0&=(~(0XFF<<8));
        rTCFG1&=(~(0X0F<<8));//不对时钟尽心分频
        rTCNTB2=6600;//定时器2的技术缓冲所赋值
        rTCON =(0X02<<12);//装载计时器2的缓冲寄存器的值
        rTINT_CSTAT        |=0X04;//定时器2的中断使能
        rTCON =(0X09<<12);//设置定时器2为自动重载模式,并开启定时器2
}
void __irq timer2()
{
        i++;
        if(i==4)
                i=0;
        rGPIOMDAT=(~(0X01<<i));
        rTINT_CSTAT        |=0X84;//清楚定时器2的中断标志位
        rVIC0ADDRESS=0;//清楚isr程序的地址。
}//每中断一次,led灯移位点亮一个
void INT_init()
{
        rVIC0SOFTINTCLEAR =~0;//清除软件中断
        rVIC0INTENCLEAR=~0;//清除所有的重大U难使能位
        rVIC0INTENABLE |=(0X01<<25);//使能定时器2的中断
         rVIC0SOFTINT  |=(0X01<<25);//使能定时器2 的软件中断
        rVIC0INTSELECT =0;//令定时器2为irq模式
        rVIC0VECTADDR25=(unsigned long) timer2;//将中断服务程序的地址赋值给中断响亮地址寄存器
        rVIC0PRIORITYDAISY=0x00;//设置中断优先级别为0x00
        rVIC0VECTPRIORITY25=0x00;//设置定时器2的中断优先级别为0;        
               
}
void Main()
{
        INT_init();//中断初始化
        GPIO_Init();//IO口初始化
        TIMER_Init();//计数器2初始化
        while(1);
}
为什么这样设置进不去中断服务程序,求教,在此谢过

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top