Board logo

标题: 菜问:TIMER中断后,counter还计数吗 [打印本页]

作者: 看帖不回你咬我    时间: 2007-8-30 19:47     标题: 菜问:TIMER中断后,counter还计数吗

我在定时器中断后调用的子程序里,让CPU输出一个高电平使能计数器counter,

然后再读counter的输出,却发现他的输出始终为0。

所以有如题的菜问,是我设置错了还是他原本就计不了了?鄙视无效!


作者: caopengly    时间: 2007-8-30 20:10

这是一个timer中断程序的例子,要重新赋值

static void handle_Timer0_interrupts(void* context, alt_u32 id)
{
alt_u8 a;
volatile alt_u8 *countptr = (volatile alt_u8 *)context;
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE, 0);//清TO标志
a = *countptr; //取出count中的值
a=a<<1; //作移一位
if (a == 0x10) a=1; //我只有4个led,所以要让led循环闪烁
*countptr=a; //重新赋值给count
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, a); //写到LED输出口
}

[此贴子已经被作者于2007-8-30 20:10:48编辑过]


作者: 看帖不回你咬我    时间: 2007-8-30 20:57

头儿,你说的可能跟我问的不太一样。

我说的counter是quartus ii 里添加到顶层图上的那个lpm counter0。启动之后里面的数应该是可以随着系统时钟不停的涨啊涨啊的那种。(以我的理解能力应该是这样的)

我想问的是,这个counter跟定时器中断会不会有冲突,因为我在定时器中断里使能counter以后,他不再计数了(读他的输出总是0)。


作者: caopengly    时间: 2007-8-31 09:47

"个lpm counter0"

是counter ip ,

"系统时钟不停的涨啊涨啊的那种"

是的,会涨。

“这个counter跟定时器中断会不会有冲突,因为我在定时器中断里使能counter以后,他不再计数了”

不会冲突。两个是互不相关的实体。

你可以检查一下nios中timer对counter的使能信号有没有问题,和counter的使能信号有没有问题。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0