首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【定时器程序】求助

【定时器程序】求助

用定时器驱动 cnt计数
int cnt=0;
/******************************************************************************/
void init_timer()
{
  /*TS=1s*/
  IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, 0x07840);
  IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, 0x017D);
  IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,            
            ALTERA_AVALON_TIMER_CONTROL_ITO_MSK  |
            ALTERA_AVALON_TIMER_CONTROL_CONT_MSK |
            ALTERA_AVALON_TIMER_CONTROL_START_MSK);
}
static void isr_timer(void* context, alt_u32 id)
{
  IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE,0);
  cnt++;
}

int main (void)
{
#ifdef TIMER_BASE
  init_timer();
  printf ("init timer");
#endif
  alt_irq_register(TIMER_IRQ,TIMER_BASE,isr_timer);
  while (1)
  {
   if( cnt%10 == 0 )
    printf ( "%d" , cnt);
   
  };
  return 0;
}

哪位帮忙看一下,为什么输出只有
00000000..
呢??
多谢
定时器的时间是1s吗,如果是的话,当cnt=0的时候,循环里面一直会打印0,等1s秒才变化,1s的时间会打印很多的东西的。
在交流中前进,共同实现nios的应用。

你要把system library的debug目录里的system description目录里的alt_sys_init.c拷贝到system library 并把关于定时器初始化的部分注释掉。如果不这样,那NiosIDE不会使用你自己的中断服务程序

输出一直是 0
你要把system library的debug目录里的system description目录里的alt_sys_init.c拷贝到system library 并把关于定时器初始化的部分注释掉。如果不这样,那NiosIDE不会使用你自己的中断服务程序
system library是指??

一个NIOS工程有两个目录,一个是应用程序本身,还有一个系统库(SYSTEM LIBRARY).
有个 warning: passing arg 2 of `alt_irq_register' makes pointer from integer without a cast
Post-processing to create boot_rom.hex

找到问题了
  IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, (TIMER_PERIOD >> 16));
  IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, (TIMER_PERIOD &0xffff));
改成这个就好了。呵呵
谢谢各位。
这和你自己以前的表述有什么不一样吗?
在交流中前进,共同实现nios的应用。
可是这样程序就可以运行,以前那样就不行。
还有就是按键sw3老是自动分配到c5,可是reset也是c5,于是就改到别的。
可是不能写进ram了。
你是说出现新的问题了?
在交流中前进,共同实现nios的应用。
返回列表