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.

Can't Display Anything on DM3730.

Other Parts Discussed in Thread: DM3730

Hi everyone,


I'm working on DM3730 to display videos frames but I have some trouble on it.

I have found and written some code on system.

    Display_Handle 		 hDisplayx  = NULL;
    Display_Attrs dAttrsx = Display_Attrs_O3530_VID_DEFAULT;
    Buffer_Handle dBufx;
    
   
    Dmai_init();
    /* Create the video display */
    dAttrsx.videoStd 	= VideoStd_VGA ;
    dAttrsx.videoOutput = args->videoOutput; //"dvi" format
    if((hDisplayx = Display_create(NULL , &dAttrsx)) == NULL ){
        ret = Dmai_EFAIL;
        fprintf(stderr,"Failed to open display device\n");
        cleanup();
        return ret;
    }
    for(int p = 0 ; p < 2000; p++) {
 
        if(Display_get(hDisplayx, &dBufx)<0)
			printf("Display_get can't work\n");
        if(Display_put(hDisplayx, dBufx)<0)
			printf("Display_put can't work");
	}
    Display_delete(hDisplayx);
	return -1;

I have written a code that seeming up there. When I run my code , it always show me a green screen. it has 640x480. it has no error it s working but I can't see any cameras frames. only green screen.

Has any idea about it.

I researched lots of documentation to display in dm3730. I actually try it but no true response to me.

Regards.

  • Hi,

    Moving your post to right forum to be better answered.

    Thanks & regards,
    Sivaraj K
  • Hi Erkan,

    I think you are missing to fill with some data the dBufx buffer between calling of Display_get and Display_put.
    You can try to debug the dBufx buffer content by printing part of the data in hex format (one row for example because the whole buffer is very large). Thus you can check whether each pixel is green or not.

    BR
    Tsvetolin Shulev
  • Hi Tsvetolin Shulev,

    Thanks for your reply, I tried something and under the code and results.

    /**
    * Print function to write 200 elements in Buffer_Handler's userPtr
    */
    void print(Int8 *p){
        int s=0,hold=0;
        while(*p != '\0' ){
            printf("%#x ",*p); p++;
            if((s++)%100 == 0){
                printf("\n");
                if(hold++ == 2 ){
                    break;
                }
            }
        }
    }
    
    in main.....
    
    if(Display_get(hDisplayx, &dBufx)<0)
        printf("Display_get can't work\n");
    
    ///
        print(Buffer_getUserPtr(dBufx));
    
    if(Display_put(hDisplayx, dBufx)<0)
        printf("Display_put can't work");
    
    
    /////
    And Results are:
    0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 
    0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 0x10 0xffffff80 
    
    ... goes on.
    
    
    
    
    I searched values that 0xfffff80 is a green value. So how to find out dBufx correct value to give me.

    Regards.
    Erkan.

  • Erkan,

    Probably you are missing something in filling the video buffer. You can find an example in the DVSDK ../dmai_2_20_00_15/packages/ti/sdo/dmai/apps/vido_display/appMain.c
    Pay attention on the /* Draw a vertical bar of a color */ section between Display_get and Display_put.

    BR
    Tsvetolin Shulev