3500|1

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

AM3359多个中断时如何设置? [复制链接]

测试StarterWare例程中dmTimer定时中断和uartEcho收发中断,单独运行都没有问题
试着把uartEcho中的UART相关内容移植到dmTimer工程中,这时问题来了
移植成功,编译下载运行后,UART收发正常,但是定时器中断没有了
接着做了多次测试,当屏蔽UART中断设置后,dmTimer定时中断回来了
问题好像在于1个中断源没有问题,2个中断源只响应了1个

main()
{
   ...
      /* This function will enable clocks for the DMTimer2 instance */
    DMTimer2ModuleClkConfig();

    /* Enable IRQ in CPSR */
    IntMasterIRQEnable();

    /* Register DMTimer2 interrupts on to AINTC */
    DMTimerAintcConfigure();

    /* Perform the necessary configurations for DMTimer */
    DMTimerSetUp();

    /* Enable the DMTimer interrupts */
    DMTimerIntEnable(DMTIMER_INSTANCE, DMTIMER_INT_OVF_EN_FLAG);

/* Configuring the system clocks for UART0 instance. */
    UART0ModuleClkConfig();

    /* Performing the Pin Multiplexing for UART0 instance. */
    UARTPinMuxSetup(0);

    /* Performing a module reset. */
    UARTModuleReset(UART_INSTANCE_BASE_ADD);

    /* Performing FIFO configurations. */
    UartFIFOConfigure();

    UartConfigure(BAUD_RATE_115200, (UART_FRAME_WORD_LENGTH_8 |
                                     UART_FRAME_NUM_STB_1 |
                                     UART_PARITY_NONE));

    /* Configuring AINTC to receive UART0 interrupts. */
    UARTINTCConfigure();

    /* Enabling required UART Interrupts. */
    UARTIntEnable(UART_INSTANCE_BASE_ADD,
                  (UART_INT_LINE_STAT | UART_INT_THR | UART_INT_RHR_CTI));

    /* Start the DMTimer */
    DMTimerEnable(DMTIMER_INSTANCE);

   while(1){;}
   

}

static void DMTimerAintcConfigure(void)
{
    /* Initialize the ARM interrupt control */
    IntAINTCInit();

    /* Registering DMTimerIsr */
    IntRegister(SYS_INT_TINT2, DMTimerIsr);

    /* Set the priority */
    //IntPrioritySet(SYS_INT_TINT2, 0, AINTC_HOSTINT_ROUTE_IRQ);
    IntPrioritySet(SYS_INT_TINT2, 2, AINTC_HOSTINT_ROUTE_FIQ);   //两种设置均不成功

    /* Enable the system interrupt */
    IntSystemEnable(SYS_INT_TINT2);
}
static void UARTINTCConfigure(void)
{
    /* Initializing the ARM Interrupt Controller. */
    //IntAINTCInit();      //定时中断配置中已经进行了初始化, 此处不再初始化

    /* Registering the Interrupt Service Routine(ISR). */
    IntRegister(UART_INSTANCE_INT_NUM, UARTIsr);
    //#define UART_INSTANCE_INT_NUM      (SYS_INT_UART0INT)
    //#define SYS_INT_UART0INT                       (72)

    /* Setting the priority for the system interrupt in AINTC. */
    IntPrioritySet(UART_INSTANCE_INT_NUM, 0, AINTC_HOSTINT_ROUTE_IRQ);

    /* Enabling the system interrupt in AINTC. */
    IntSystemEnable(UART_INSTANCE_INT_NUM);
}

请教是不是因两个中断源的问题,如何处理?

最新回复

所有环节捋清楚,一个环节一个环节确认  详情 回复 发表于 2015-2-6 00:33
点赞 关注
 

回复
举报

1025

帖子

1

TA的资源

纯净的硅(高级)

沙发
 
所有环节捋清楚,一个环节一个环节确认
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表