Showing results for 
Search instead for 
Did you mean: 
Honored Contributor I

Interval timer not counting up

I am new to the Nios II stuff, I have a design with the simple interval timer peripheral. It is not counting. Basically I expected to be able to read the counter value by reading the snapshot registers by using IORD_ALTERA_AVALON_TIMER_SNAPL & IORD_ALTERA_AVALON_TIMER_SNAPH. But I always get 0.  


I tried to start the counter from control register and also tried fidling with the options in Qsys for the timer. However, whatever I do in life, I still can't measure the counter counting up at all. 


Here is the code I tried last time: 



# include "sys/alt_stdio.h"# include "system.h"# include "altera_avalon_timer_regs.h"# include "alt_types.h"# include "stdio.h" int main() { alt_putstr("Hello from Nios II!\n"); alt_u16 x=0; IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_0_BASE, 0xffff); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_0_BASE, 0xffff); /* Event loop never exits. */ while (1) { IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_0_BASE, 6); x=IORD_ALTERA_AVALON_TIMER_PERIODL(TIMER_0_BASE); printf("p: %u\n",x); x=IORD_ALTERA_AVALON_TIMER_PERIODH(TIMER_0_BASE); printf("p: %u\n\n",x); x=IORD_ALTERA_AVALON_TIMER_SNAPL(TIMER_0_BASE); printf("s: %u\n",x); x=IORD_ALTERA_AVALON_TIMER_SNAPH(TIMER_0_BASE); printf("s: %u\n",x); } return 0; }  


If possible could you compile a simple project with timer peripheral. I am feeling lost completely.
0 Kudos
1 Reply
Honored Contributor I

Yes I figured out what things were wrong and know how to do this stuff now, the most elusive problem was that I was calling IORD_ALTERA_AVALON_TIMER_SNAPL when I had infact changed to using 64 bit timer that needs IORD_ALTERA_AVALON_TIMER_SNAP_0 instead. However, the program compiled just fine but did not work as expected.