注册 登录
查看: 370|回复: 4

sos!!!!中断冲突,山外哥哥帮我看看

[复制链接]
发表于 2014-7-26 11:39:13 | 显示全部楼层 |阅读模式
本帖最后由 ggkukucat 于 2014-7-26 16:07 编辑

pit0中断和摄像头中断冲突,pit0一旦进入中断,摄像头就卡死了,配置了优先级也不对。下面是测试代码,山外帮我看看吧。摄像头和dma中断代码没有贴,山外的的例程。

void  main(void)
{
    DisableInterrupts;

    uint8 y=61;
    Site_t site     = {0, 0};                           //显示图像左上角位置
    Size_t imgsize  = {CAMERA_W, CAMERA_H};             //图像大小
    Size_t size;                   //显示区域图像大小

    LCD_init();
    led_init(LED0);                         //初始化LED0
    led_init(LED1);

    size.H = 60;
    size.W = 80;

    camera_init(imgbuff);
    //配置中断复位函数
    pit_init_ms(PIT0, 500);                                //初始化PIT0,定时时间为: 1ms
    set_vector_handler(PIT0_VECTORn ,PIT0_IRQHandler);
    set_vector_handler(PORTA_VECTORn , PORTA_IRQHandler);   //设置LPTMR的中断复位函数为 PORTA_IRQHandler
    set_vector_handler(DMA0_VECTORn , DMA0_IRQHandler);     //设置LPTMR的中断复位函数为 PORTA_IRQHandler
    NVIC_SetPriorityGrouping(4);            //设置优先级分组,4bit 抢占优先级,没有亚优先级

    NVIC_SetPriority(PORTA_IRQn,1);         //配置优先级
    NVIC_SetPriority(PORTE_IRQn,2);         //配置优先级
    NVIC_SetPriority(DMA0_IRQn,3);          //配置优先级
    NVIC_SetPriority(PIT0_IRQn,4);          //配置优先级
// NVIC_SetPriority(PIT1_IRQn,0);          //配置优先级
    enable_irq (PIT0_IRQn);
    EnableInterrupts;
    while(1)
    {
        camera_get_img(); //摄像头获取图像
        img_extract(img, imgbuff, CAMERA_SIZE);
        Imageprocess(img);

#if     ( CAMERA_COLOR == 1 )                                       //灰度摄像头
        LCD_Img_gray_Z       (site, size, imgbuff, imgsize);
#elif   ( CAMERA_COLOR == 0 )                                       //黑白摄像头
        LCD_Img_Binary_Z(site, size, imgbuff, imgsize);
#endif

        for(int i=search_row_cnt-1;i>=0;i--)
        {
          site1.x=Line_center;
          site1.y=y++;

          LCD_point(site1, YELLOW);
          if(y==93)y=61;
        }
        //LCD_rectangle(site_clr, size_clr, BCOLOUR);

    }
}

void PIT0_IRQHandler(void)
{

        led_turn(LED1);                     //LED1翻转
PIT_Flag_Clear(PIT0);
}







回复

使用道具 举报

发表于 2014-7-26 13:14:24 | 显示全部楼层
场中断配置最高优先级,试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-26 13:48:55 | 显示全部楼层
山外メ雲ジ 发表于 2014-7-26 13:14
场中断配置最高优先级,试试

试过了 好像优先级配置没起什么作用,能加一下q吗?
回复 支持 反对

使用道具 举报

发表于 2014-7-26 15:08:32 | 显示全部楼层
E口中断怎么没有配置
回复 支持 反对

使用道具 举报

发表于 2014-7-26 19:45:44 | 显示全部楼层
试下按照这里修改一下,看看对不对

改了底层后解决了图像卡住的问题 - 智能车讨论区 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... tid=4363&ctid=6

回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回列表 返回顶部