我在定时器中断后调用的子程序里,让CPU输出一个高电平使能计数器counter,
然后再读counter的输出,却发现他的输出始终为0。
所以有如题的菜问,是我设置错了还是他原本就计不了了?鄙视无效!
这是一个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编辑过]
头儿,你说的可能跟我问的不太一样。
我说的counter是quartus ii 里添加到顶层图上的那个lpm counter0。启动之后里面的数应该是可以随着系统时钟不停的涨啊涨啊的那种。(以我的理解能力应该是这样的)
我想问的是,这个counter跟定时器中断会不会有冲突,因为我在定时器中断里使能counter以后,他不再计数了(读他的输出总是0)。
"个lpm counter0"
是counter ip ,
"系统时钟不停的涨啊涨啊的那种"
是的,会涨。
“这个counter跟定时器中断会不会有冲突,因为我在定时器中断里使能counter以后,他不再计数了”
不会冲突。两个是互不相关的实体。
你可以检查一下nios中timer对counter的使能信号有没有问题,和counter的使能信号有没有问题。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |