Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

why the results i run or debug this code are different,your help would be appreciated

/*

* control.c

*

* Created on: 2012-11-15

* Author: zhanghan

*/

# include "alt_types.h"# include "altera_avalon_timer_regs.h"# include "sys/alt_irq.h"# include "system.h"# include <stdio.h># include <unistd.h>

void timer_ISR(void);

void init_spi(void);

int d;

int main(void)

{

printf("\nWelcome!!!\n");

init_spi();

printf("\nSpi initial succeed!\n");

while(1)

{

}

return 0;

}

void init_spi(void)

{

d=0;

IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE,0x00);

// IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE,25000>>16);

// IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE,25000 && 0xffff);

IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,0x07); //start the timer

alt_irq_register(TIMER_IRQ,(void*)TIMER_BASE,(void*)timer_ISR);

}

//interrupt service routine

void timer_ISR(void)

{

printf("\nthe data is %d \n" ,d);

d++;

IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0x00); //clear the timeout bit

}

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    if i add these codes&#65306;IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE,25000> >16);

    IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE,25000 && 0xffff);

    the program won't work,why

    i have ready selected the"writable period"
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You probably meant '25000 & 0xffff' instead of '25000 && 0xffff' which will result in 25000 instead of 1.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    thanks very much,i'll try it,but i've already used that two statements many times before in my project,and there is nothing wrong.