{$cluname}

意得法论坛 » CPLD/FPGA综合论坛 » nios ii 定时器的问题


‹‹上一主题 | 下一主题›› 查看 2155
发表一个新帖子 发表回复

标题 nios ii 定时器的问题 在百度搜索本主题 [ 搜 ] [ 打印 ] [ 推荐 ] [收藏帖子] [ 收藏到新浪VIVI] [ 订阅 ]

john (附小一年级)
楼主   [点击复制本网址] [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
Rank:1
Rank:1
UID 44
帖子 3
积分 7 点
金币 14 枚
魅力 6 度
注册 2009年11月30日
nios ii 定时器的问题

我用sopc builder 搭建了一个跑马灯的硬件系统,里边添加了定时器,可定时器的定时方面有点问题,哪位大哥帮忙分析一下,这是怎么回事?我在nios下的变成如下:

#include "system.h"
#include "sys/alt_irq.h"
#include "alt_types.h"
#include "altera_avalon_pio_regs.h"
#include "altera_avalon_timer_regs.h"

#define TIMER_0_BASE 0x00005000
#define LED_BASE  0x00005020

 alt_u8 n=0;
 
static void timer_overflow(void* context, alt_u32 id)
{
        IOWR(TIMER_0_BASE,0,0);//清to标志
        if (*(alt_u8 *)context & 0x80)
        {
            *(alt_u8 *)context = 0x01;
        }
        else
        {
            *(alt_u8 *)context = *(alt_u8 *)context << 1;
        }
        IOWR(LED_BASE,0,*(alt_u8 *)context);     
    return;
}
int main(void)
{
   alt_u8 led = 0x01;
   IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_0_BASE,0xFFFF);
   IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_0_BASE,0x0FFF);
   IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_0_BASE, 0x07);//启动定时器
   alt_irq_register( TIMER_0_IRQ, (void*)&led, timer_overflow);//注册定时器
   while(1);
}

我添加的定时器默认是100ms中断一次,可我在这个程序里设置了定时器的初始值,差不多是5s多一点,可我下到板子上它还是按照100ms中断一次,请问这是怎么回事?





此用户离线!
共计在线时长10分钟2009-11-30 18:10:26
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

jacob (附小一年级)
第2楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
Rank:1
Rank:1
UID 45
帖子 1
积分 1 点
金币 4 枚
魅力 2 度
注册 2009年11月30日
回复:nios ii 定时器的问题

程序没问题,是在sopc_builder里添加定时器组件时将定时器设置为不可写,所以设的初值才没作用。。。。




此用户离线!
共计在线时长0分钟2009-11-30 18:13:52
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

« 首页1 »1/共1页


查看积分策略说明快速回复你的内容
快捷回复标题 (选填) 快捷插入表情图标
验 证 码  点击获取验证码
快捷回复内容

自动复制

Powered by TEAM 2.0.5 Release - ACC © 2005 Team5 Studio All rights reserved