主题 : tiny210定时器4中断无反应 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 76716
精华: 0
发帖: 47
金钱: 235 两
威望: 47 点
综合积分: 94 分
注册时间: 2012-08-28
最后登录: 2013-01-11
楼主  发表于: 2012-10-18 10:00

 tiny210定时器4中断无反应

调试环境,友善之臂tiny210开发板。以下是自己调试成功的定时器0中断初始化设置程序。
static int timerini(void)
{
    unsigned long vic0reg;
    unsigned long tcon;
    unsigned long tcfg0;
    unsigned long cstat;
    unsigned long tcntb;
    int ret;
    ret = request_irq(IRQ_TIMER0, irq_handler,
        IRQF_TRIGGER_FALLING,"key INT_TIMER0", NULL);
    if(ret)
    {
        printk("request timer0 irq failed!\n");
        return -1;
    }
    printk("hello irq\n");
    local_irq_disable();
    cstat = __raw_readl(S3C64XX_TINT_CSTAT);
    cstat |= 1<<5;                                    //清除定时器状态位
    cstat |= 1<<0;                                   //开timer0中断,允许timer0中断发生
    __raw_writel(cstat,S3C64XX_TINT_CSTAT);
    vic0reg = __raw_readl(S5P_VIC0REG(VIC_INT_ENABLE));
    vic0reg |= 1<<21;                               //开timer0的使能
    __raw_writel(vic0reg,S5P_VIC0REG(VIC_INT_ENABLE));
    tcfg0 = __raw_readl(S3C2410_TCFG0);
    tcfg0 &= 0x07;  
    tcfg0 |= 0x07;                                    // 设置分频因子(8分频), 定时器时钟频率为1.03Mhz
    __raw_writel(tcfg0,S3C2410_TCFG0);
    tcon = __raw_readl(S3C2410_TCON);
    tcon |= S3C2410_TCON_T0MANUALUPD;                  //设置初值后要更新TCNTB
    tcon |= S3C2410_TCON_T0RELOAD;                     //自动重装开启
    __raw_writel(tcon,S3C2410_TCON);
    tcntb = 1000000;
    __raw_writel(tcntb,S3C2410_TCNTB(0));            //设置初值,用于TCTB0
    tcon |= S3C2410_TCON_T0START;           //timer0 start;
    tcon &= ~(S3C2410_TCON_T0MANUALUPD);               //不再Update TCNTB0,TCMPB0
    __raw_writel(tcon,S3C2410_TCON);
    local_irq_enable();
    return 0;
}

根据已经成功的 定时器0初始化设置方法 对定时器4进行相同的初始化设置,为什么定时器4产生不了中断?疑惑啊!
级别: 新手上路
UID: 76716
精华: 0
发帖: 47
金钱: 235 两
威望: 47 点
综合积分: 94 分
注册时间: 2012-08-28
最后登录: 2013-01-11
1楼  发表于: 2012-10-18 12:02
问题已解决
级别: 侠客
UID: 60040
精华: 0
发帖: 90
金钱: 465 两
威望: 93 点
综合积分: 180 分
注册时间: 2011-12-03
最后登录: 2015-09-20
2楼  发表于: 2012-11-15 09:03
如果这样设置,应该没错啊,请问下LZ,到底是什么情况,是怎么解决的呢