QCI Interrupt in PXA320 RRS feed

  • Question

  • Hi Friends

    I am developing camera drivers for PXA320 platform on wince5.0.

    I am getting a framerate of 10 frames/sec from my camera sensor.But when i am calculating the time of capturing it is around 500ms instead of 100 ms.

    What i am actually doing is waiting for the QCI interrupt after starting the DMA and this interrupt is taking 500 ms to come after starting of DMA.

    could anybody help me on this issue,where this 400 ms is getting wasted.

    This is the interrupt thread and i am making g_captureframe true before starting DMA and waiting for it to be false.IT is taking 500 ms.

    void QCIInterruptThread()
        DWORD event_id =0;
        HANDLE events[2];
        events[0] = hQCIIntrEvent;
        events[1] = hShutDownEvent;
        while((event_id - WAIT_OBJECT_0) != 1)
            event_id = WaitForMultipleObjects(2, (CONST HANDLE*)events, FALSE, INFINITE);
            RETAILMSG(1,(TEXT("event_id 0x%x\r\n" ),event_id));
            if (event_id == WAIT_OBJECT_0)
                RETAILMSG(1,(TEXT("cicro cisr 1is 0x%x 0x%x\r\n"),v_ppCIRegs->cicr0,v_ppCIRegs->cisr));
                if(v_ppCIRegs->cisr & QCI_CISR_EOF)
                    v_ppCIRegs->cisr |= QCI_CISR_EOF;
                    g_CaptureFrame = FALSE;
                RETAILMSG(1,(TEXT("cicro cisr 1is 0x%x 0x%x\r\n"),v_ppCIRegs->cicr0,v_ppCIRegs->cisr));
                v_ppCIRegs->cisr |= 0xFFFFFFFF;
                RETAILMSG(1,(TEXT("cicro cisr 3is 0x%x 0x%x\r\n"),v_ppCIRegs->cicr0,v_ppCIRegs->cisr));
                RETAILMSG(1,(TEXT("shutdown_event set\r\n" )));
        RETAILMSG(1,(TEXT("INterrupt thread released\r\n")));

    thanks for your answers in advance.
    • Moved by Sean LimingMVP Tuesday, February 16, 2016 4:37 PM WinCE question
    Wednesday, March 11, 2009 11:37 AM

All replies