|
刚写了个程序,但是下载到开发板后发现运行不起来,具体是近入不了中断函数。
本人使用的是MINI2440,程序是下载到了0x30000000处,nor FLASH启动!
附上源程序:
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"
void __irq Timer4_ISR(void)
{
static int count=4;
count ++;
rSRCPND = rSRCPND | (0x1<<14);
rINTPND = rINTPND | (0x1<<14);
//每隔2秒蜂鸣器响一次,持续时间为0.5秒,并伴随着LED亮
if (count % 1000 ==0)
rGPBDAT = ~0x1e0; //蜂鸣器响,LED亮
else if (count % 1000 ==500)
rGPBDAT = 0x1e0; //蜂鸣器不响,LED灭
}
void Main(void)
{
rGPBCON = 0x155555; //B0输出,给蜂鸣器;B5~B8输出,给LED
rGPBUP = 0x7ff;
rGPBDAT = 0x1e0; //蜂鸣器不响,LED灭
// Timer1_init();
rSRCPND = rSRCPND | (0x1<<14);
rINTPND = rINTPND | (0x1<<14);
rINTMSK = ~(0x1<<14); //打开定时器4中断
rTCFG0 &= 0xFF00FF;
rTCFG0 |= 0xf900; // prescaler等于249
rTCFG1 &= ~0xF0000;
rTCFG1 |= 0x20000; //divider等于8,则设置定时器4的时钟频率为25kHz
rTCNTB4 = 12500; //让定时器4每隔0.5秒中断一次
rTCON &= ~0xF00000;
rTCON |= 0x700000;
rTCON &= ~0x200000 ; //定时器4开始工作
pISR_TIMER4 = (U32)Timer4_ISR;
while(1)
{
// rGPBDAT = ~0x1e0;
;
}
}
小弟先谢过了! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|