天嵌 ARM开发社区

 找回密码
 注册
查看: 2487|回复: 3

Keil一个定时器程序,编译能过,就是进不了中断,谁能帮帮我

[复制链接]
ping_ping 发表于 2013-4-20 16:12:03 | 显示全部楼层 |阅读模式
#include "2440addr.h"

#define _ISR_STARTADDRESS 0x33ffff00
volatile unsigned char flag=0;
//************************************************************
//           led define
#define LED1 (1<<10)                
#define LED1ON (~(1 << 5))       
#define LED1OFF ((1 << 5))

#define LED2 (1<<12)
#define LED2ON (~(1 << 6))
#define LED2OFF ((1 << 6))

#define LED3 (1<<14)
#define LED3ON (~(1 << 7))
#define LED3OFF ((1 << 7))

#define LED4 (1<<16)
#define LED4ON (~(1 << 8))
#define LED4OFF ((1 << 8))
//******************************************************
//led init....
void Led_Init()
{
        rGPBCON &= ~((3 << 10) | (3 << 12) | (3 << 14) |(3 << 16));
        rGPBCON |= (LED1 | LED2 | LED3 | LED4) ;
        rGPBDAT |= LED1OFF | LED2OFF | LED3OFF | LED4OFF ;
}

void Led1_On()
{
        rGPBDAT &= 0xFDF;//LED1ON ;1111 1101 1111
}
void Led1_Off()
{
        rGPBDAT |= LED1OFF ;
}
void Led2_On()
{
        rGPBDAT &= LED2ON ;
}
void Led2_Off()
{
        rGPBDAT |= LED2OFF ;
}
void Led3_On()
{
        rGPBDAT &= LED3ON ;
}
void Led3_Off()
{
        rGPBDAT |= LED3OFF ;
}
void Led4_On()
{
        rGPBDAT &= LED4ON ;
}
void Led4_Off()
{
        rGPBDAT |= LED4OFF ;
}
//*******************************************************
//**********************************************************
// time0 init.....
void Timer0_Init(void)
{
        rTCFG0 &= ~(0xff) ;
        rTCFG0 |= 99 ;
        rTCFG1 &=  ~(0xf) ;
        rTCFG1 |=  0X02 ;
        rTCNTB0 =  62500 ;//1s中断一次
        rTCMPB0 = 0;
        rTCON |= (1 << 1) ;//手动更新
        rTCON =  0x09 ; //启动定时器       
}
//start interrupt
void Timer0_Interrupt_Init(void)
{
        rINTMSK &= ~(1 << 10) ;
}
//****************************************************
void __irq Timer0_Isr(void)
{
        flag = !flag ;
        rSRCPND |= 1 << 10 ;
        rINTPND |= 1 << 10 ;
}

void Isr_Init(void)
{
        pISR_TIMER0 = (unsigned int)Timer0_Isr ;       
}
//##############################
int main()
{
        Led_Init() ;
        Timer0_Init() ;
        Timer0_Interrupt_Init() ;
        Isr_Init() ;
       
        while(1)
        {       
                if(flag )
                {
                        Led2_On() ;
                }
                else
                {
                        Led2_Off() ;
                }
        }        
}
 楼主| ping_ping 发表于 2013-4-21 11:09:07 | 显示全部楼层
有木有大神在
回复

使用道具 举报

C调的笨娃娃 发表于 2013-4-26 10:55:23 | 显示全部楼层
ping_ping 发表于 2013-4-21 11:09
有木有大神在

你这个中断的IRQ设置有问题没?
回复

使用道具 举报

 楼主| ping_ping 发表于 2013-5-8 21:04:27 | 显示全部楼层
启动代码的问题,修改启动代码就可以进去了!
回复

使用道具 举报

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

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-12-15 19:45 , Processed in 2.039144 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表