zend 发表于 2010-7-25 08:46:30

求助:EWARM模拟仿真的问题

环境EWARM5.5。
我仿真的一段定时中断,模拟运行时发现T0TC始终为0,且无法进入中断,希望能得到有识之士的帮助。
代码
void Time0Init(void)
{
/* Fcclk = Fosc*4 = 16MHz*4 = 64MHz
   Fpclk = Fcclk/4 = 64MHz/4 = 16MHz
*/
T0PR = 99;                   // 设置定时器0分频为100分频,得160000Hz
T0MCR = 0x03;                      // 匹配通道0匹配中断并复位T0TC
T0MR0 = 110592/2;            // 比较值(1秒定时值) ###100us
T0TCR = 0x03;                      // 启动并复位T0TC
T0TCR = 0x01;
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00;             // 所有中断通道设置为IRQ中断
VICVectCntl1 = 0x24;             // 定时器0中断通道分配最高优先级(向量控制器0)
VICVectAddr1 = (unsigned long)IRQ_Time0;       // 设置中断服务程序地址向量
VICIntEnable = 0x00000010;      // 使能定时器0,1 串口0,1中断
VICIntEnable = (1 << 0x04);   // 使能定时器0中断
}
/*************定时器0中断程序****************/
__irq __arm void IRQ_Time0(void)
{
//IRQ_TASK0();         
T0IR = 0x01;                     // 清除中断标志
VICVectAddr = 0x00;                   // 通知VIC中断处理结束
}
intmain(void)
{
//Init_VPB_PLL();
IO0DIR=0x0000ff00;//配置P0.8-P0.15为输出   
IO0SET=0x0000ff00;   //配置P0.8-P0.15初始值为高
Time0Init();         //初始化定时器0
   while(1);            //等待进入中断程序
}
运行后定时器的值如下
http://cache.amobbs.com/bbs_upload782111/files_31/ourdev_570545.PNG
(原文件名:捕获.PNG)

june4th 发表于 2010-7-25 09:07:05

软仿很多东西都仿不出来

again 发表于 2010-7-25 10:53:21

你没设置哦!

zend 发表于 2010-7-25 23:26:24

again :谢谢回复。
能教我怎样设置吗,我现在基本都是默认设置,只芯片选择项有更改。
另外,给寄存器赋值的时候正常。
http://cache.amobbs.com/bbs_upload782111/files_31/ourdev_570685.PNG
(原文件名:捕获.PNG)
页: [1]
查看完整版本: 求助:EWARM模拟仿真的问题