TI中文支持网
TI专业的中文技术问题搜集分享网站

中断初始化的问题

你好,我采用你们官网给的把中断的入口打开放在asm文件的例程,我的中断就正常,但是不用这个asm文件,我调用你们的intcInit,然后再初始化中断,这个时候我的定时器中断每次跑个30多次就不跑了,另外就是我用的下面这个例程,不适用    IER = IER|(1<<14);这句话我就不进中断,但是我看别的公司的代码是可以的,他们就是不带asm文件,也没有    IER = IER|(1<<14);
    IER = IER|(1<<13);这两句话

    intcInit();

    RegisterInterrupt(CSL_GEM_TINTLN, CSL_INTC_VECTID_14 , (CSL_IntcEventHandler)Timer_ISR);
    RegisterInterrupt(CSL_GEM_TINT3L, CSL_INTC_VECTID_13 , (CSL_IntcEventHandler)Timer_ISR2);

    IER = IER|(1<<14);
    IER = IER|(1<<13);

    TM6657_TIMERIRQ_ENABLE(500);
    while(1)
    {

        if(timer_flag1)
        {
            timer_flag1= 0;

            TM6657_TIMERIRQ_ENABLE(500);

        }
    }

Shine:

IER = IER|(1<<14);IER = IER|(1<<13);
这两句是使能INT14, INT13,看您要把timer中断映射到INT14还是INT13.

如果工程是基于sys/bios的话,可以不用再写vectors.asm中断向量表文件。

如果跑了30多次就不跑了,看一下中断处理子函数前是否用interrupt关键字定义了,如void interrupt Timer_ISR(void)

wind small:

回复 Shine:

不适用sys/bios的话,必须适用中断向量表文件吗?我看有不使用sys/bios但是没有中断向量表文件的,我的这个中断处理子函数void interrupt Timer_ISR(void)用了这个interrupt这个子函数

Shine:

回复 wind small:

sys/bios是自带vecctors.asm。如果是裸机程序,需要用vectors.asm,要不然中断怎么与vectors.asm挂钩。

wind small:

回复 Shine:

没用sys/bios,我看就是RegisterInterrupt(CSL_GEM_TINT3L, CSL_INTC_VECTID_13 , (CSL_IntcEventHandler)Timer_ISR2);这个东西绑定的中断,我现在自己这么写了一下(没用vectors.asm),就只能进30几次中断,但是我用vectors.asm的时候我程序是正常的,所以我想问一下,你们有没有试过,但是确实别人的程序是没用vectors.asm这个的

user5315971:

回复 Shine:

自带的vecctors.asm路径在哪里

赞(0)
未经允许不得转载:TI中文支持网 » 中断初始化的问题
分享到: 更多 (0)