Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12612 Discussions

Interval timer not counting up

Honored Contributor II

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 II

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.

0 Kudos