This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM6437‘s VDINT0 and VDINT1

hi,all.In the DM6437's vpfe, i see the VDINT0 and VDINT1 the same time, and have no more explain.

In my project ,I configurate the VDINT0/1 in the same value. so the number of interrupt up to double times compare to the VDINT0 alone.

so I want to know what's the difference and contact between them?

thanks!

  • lei huang,

    are you asking why there are 2 interrupts?

  • The idea is to configure VINT0 and VINT1 interrupt at different places (line #s) inside the frame, for example, one at 1/2 and one at the end of the frame for different processing requirements.

  • to

    that is to say if we only want to receive the full frame,we may only use the VDINT0?

    if we want to process odd/even field,we could set the VDINT1 as the half line of the frame?

    I want to ask another question: where is the begin to count of the VDINT1? after the VDINT0?

    I think the VDINT0 count the odd field and VDINT1 count the even field? Is that right?

    or the VDINT0 both count the odd and even field?

     

    In my project, I receive the frame in interlaced miode.If I set VDINT1,the number of interrupt became twice as before.

    But in the interrupt function ,I use the field status to decide odd/even field.

    void _interrupt_function()

    {

    g_field_flag  = (ccdcRegs->SYN_MODE>>15) & 0x1;

    if(g_field_flag == 1)//even field

    {

    //receive the frame

    //change the buffer

    }

    }

     

    thanks !

  • as

     

    lei huang said:
    that is to say if we only want to receive the full frame,we may only use the VDINT0?

    that is right.

    lei huang said:

    if we want to process odd/even field,we could set the VDINT1 as the half line of the frame?

    I want to ask another question: where is the begin to count of the VDINT1? after the VDINT0?

    VIDINT1 and VIDINT0 doesn't depend on each other. Both of them start counting number of lines from start of the field(frame).

    lei huang said:

    I think the VDINT0 count the odd field and VDINT1 count the even field? Is that right?

    or the VDINT0 both count the odd and even field?

    No. Its just number of lines in current field, they can programmed to. they don't care wether it is odd or even field.

    lei huang said:

    In my project, I receive the frame in interlaced miode.If I set VDINT1,the number of interrupt became twice as before.

    But in the interrupt function ,I use the field status to decide odd/even field.

    void _interrupt_function()

    {

    g_field_flag  = (ccdcRegs->SYN_MODE>>15) & 0x1;

    if(g_field_flag == 1)//even field

    {

    //receive the frame

    //change the buffer

    }

    }

    Thats right. I believe the only way to find out field status in hw is like this.

     

  • thanks,Nagabhushana and

    I get it!

  • Nagabhushana said:

    as Xiangdong Fu pointed out 2 interrupts are needed in field mode case(i.e., interlaced in your case)

    Just to clarify. the 2 interrupts are not necessarily needed in the field mode case. Both the interrupts have the same functionality and user can decide to do whatever operations they want to do in the ISRs. Ideally, you might want to configure VDINT0 after N lines and VDINT1 after M lines from the actual physical VD signal. Once VDINT0 occurs, you might want to switch buffers and once VDINT1 occurs you might want to trigger any other algorithm, say auto focus or something.

    These interrupts dont understand field or frame. They just understand that the interrupt has to be triggered after configured number of lines from the actual VD signal.

    Regards,

    Anshuman

     

  • Correct. Thanks for clarifying.

    In my earlier post, I was referring to de-interlacing case where matching odd-even fields captured needs to be done where one of the isr's will be useful.