void VP1_EDMA(int displayMode,unsigned int w,unsigned int h)

{

   

 unsigned int i=0,k=0;

 EDMA_Handle handle;

 EDMA_Handle handle2;

 EDMA_Config myEdmaConfig;

 

    handle= EDMA_open(EDMA_CHA_VP1EVTYA, EDMA_OPEN_RESET);

    handle2 = EDMA_allocTable(-1);

     

    if(displayMode==DISPLAY_640_480)

    {

   for(i=0;i<h;i++)

      {

          for(k=0;k<w;k++)

          {

              if(i<(h/2))

              {

                  if(k<(w/2))

                   *(unsigned int*)(0x81000000 + (w*i+k)*4 )=0xfc000;//0xfc000

                  else

                   *(unsigned int*)(0x81000000 + (w*i+k)*4 )=0x3fc0;//0xfc000

              }

              else

              {

                  if(k<(w/2))

                   *(unsigned int*)(0x81000000 + (w*i+k)*4 )=0x3f;//0xfc000

                  else

                   *(unsigned int*)(0x81000000 + (w*i+k)*4 )=0xfffc0;//0xfc000

              }   

          }

      }

        

       ////               PRI   ESIZE 2DS   SUM   2DD   DUM    link  FS

          myEdmaConfig.opt = 2<<29|0<<27|1<<26|1<<24|0<<23|0<<21|1<<1|0;

          myEdmaConfig.src = (Uint32)(0x81000000);

          myEdmaConfig.cnt = 0x01df0280;//FRMCNT  ELECNT (480*640)

          myEdmaConfig.dst = 0X78000020;//DST

          myEdmaConfig.idx = 0x0a000000;//FRMIDX  ELEIDX

          myEdmaConfig.rld = handle2;//ELERLD  LINK

 }

        

       EDMA_config(handle,&myEdmaConfig);

    EDMA_config(handle2,&myEdmaConfig);

   

    //EDMA_setChannel(handle);//   *(unsigned int*)(0X01A0FFbC)=0x01000000;//触发通道56  第一次发送数据ESR 


    EDMA_setEvtPolarity(handle,EDMA_EVT_HIGHLOW);//*(unsigned int*)(0X01A0FF9c)=0x01000000; //EPRh Event polarity low register  1 falling edge ;0 rising edge

    EDMA_enableChaining(handle);  //*(unsigned int*)(0X01A0FFac)=0x01000000;//EDMA Channel Chain Enable high Register (CCERh) Field Descriptions

    EDMA_intEnable(handle);       //*(unsigned int*)(0X01A0FFa8)=0x01000000; //Channel interrupt enable high register

    EDMA_enableChannel(handle);  // *(unsigned int*)(0X01A0FFb4)=0x01000000;//EERH EDMA Event Enable high Register

}

void VP1_Display(int displayMode)

{

       int h_total, v_total, h_actv, v_actv;

       if(displayMode==DISPLAY_640_480)

       {  

         h_total=800; v_total =525; h_actv = 640;  v_actv = 480;

  // h_total=1056; v_total=628; h_actv = 800;  v_actv = 600;

  // h_total=1344; v_total=806; h_actv = 1024; v_actv = 768;

// GetCLK_307(25);

*(unsigned int*)(0x01b3f018) = 0x10c0010c;//解锁

   *(unsigned int*)(0x01b3f000) = 0x28;//open vp1       使能位 bit6 vp2 bit5 vp1 bit4 vp0  bit3 i2c

   *(unsigned int*)(0x01b3f018) = 0x0;//锁定

delay_loop3(0x2000);//延迟必须

/////////////////////////////////////////////

    

   *(unsigned int*)(0x01C44000 + 0x004) = 0x05;//PCR  使能位bit2 vp1 enable   bit0 free run

   *(unsigned int*)(0x01C44000 + 0x024) = 0x00711511;//PDIR配置视频24个管脚输出   1 output   0缺省 input

   *(unsigned int*)(0x01C44000 + 0x038) = 0x00200000; //Video Port Pin Interrupt Enable Register

   *(unsigned int*)(0x01C44000 + 0x03c) = 0x00200000; //Video Port Pin Interrupt Polarity Register

    

   *(unsigned int*)(0x01C44000 + 0x0c8) = 0x17cf9; //VPIE

   *(unsigned int*)(0x01C44000 + 0x0c0) = 0x4032;/// VPCTL)  bit7DCLK  4 HS  5 VS 极性    1 enable

*(unsigned int*)(0x01C44000 + 0x204) = 0x80000000;//vd reset

   delay_loop3(0x10000);

   ////////////////////////////////////////////////

  ///*

   *(unsigned int*)(0x01C44000 + 0x208) = ((v_total<<16)|h_total); //VDFRMSZ 525行 800个像素

   *(unsigned int*)(0x01C44000 + 0x20c) = (((h_total-1)<<16)|(h_actv-1));//VDHBLNK 800-640 -1  end start

*(unsigned int*)(0x01C44000 + 0x210) = (((v_actv-2)<<16)|0);//VDVBLKS1 478 0  start


   *(unsigned int*)(0x01C44000 + 0x214) = (((v_total-1)<<16)|0);//VDVBLKE1 524 0   end

*(unsigned int*)(0x01C44000 + 0x220) = ((0<<16)|0);//VDIMGOFF1

   *(unsigned int*)(0x01C44000 + 0x224) = ((v_actv<<16)|h_actv);//VDIMGSZ1  图像有效区域480 640

*(unsigned int*)(0x01C44000 + 0x23c) = (((h_total-1)<<16)|(h_actv-1));//VDHSYNC 639-799

*(unsigned int*)(0x01C44000 + 0x240) = (((v_actv-2)<<16)|0);//VDVSYNS1  478

   *(unsigned int*)(0x01C44000 + 0x244) = (((v_total-1)<<16)|0);//VDVSYNE1  524

////////////////////////////////////////////////////////////////////////////

      VP1_EDMA( displayMode,h_actv,v_actv);

    

   *(unsigned int*)(0x01C44000 + 0x230) = 0x00000000;//VDFLDT1

   *(unsigned int*)(0x01C44000 + 0x238) = 0x00001000|(h_actv/2);//VDTHRLD  50

   *(unsigned int*)(0x01C44000 + 0x254) = 0x00000000|(v_actv);//VDDISPEVT 1

   *(unsigned int*)(0x01C44000 + 0x260) = 0x00008006; //VDVINT

*(unsigned int*)(0x01C44000 + 0x25c) = 0x3fc0;//VDDEFVAL 缺省数据设置 red  20位 6:8:6

*(unsigned int*)(0x01C44000 + 0x204) = 0x400080c7;//VDCTL VCTL filed 选择   输出模式选择bit2-0  


   delay_loop3(0x80000);//延迟必须

   *(unsigned int*)(0x01C44000 + 0x204) = 0x000080d7;

   delay_loop3(0x80000);//延迟必须

   *(unsigned int*)(0x01C44000 + 0x204) = 0x000080c7;  

    ///////////////////////////////////////////暂停重新开始

    

   *(unsigned int*)(0X01A0FFb4)=0x00000000;//EERH EDMA Event Enable high Register

   delay_loop3(0x2000);

   *(unsigned int*)(0x01C44000 + 0x204) = 0x80000000;//vd reset

   delay_loop3(0x10000);

   *(unsigned int*)(0X01A0FFb4)=0x01000000;//EERH EDMA Event Enable high Register

   delay_loop3(0x2000);

*(unsigned int*)(0x01C44000 + 0x204) = 0x80000000;//vd reset

   delay_loop3(0x10000);

   *(unsigned int*)(0x01C44000 + 0x208) = ((v_total<<16)|h_total); //VDFRMSZ 525行 800个像素

   *(unsigned int*)(0x01C44000 + 0x20c) = (((h_total-1)<<16)|(h_actv-1));//VDHBLNK 800-640 -1  end start

*(unsigned int*)(0x01C44000 + 0x210) = (((v_actv-2)<<16)|0);//VDVBLKS1 478 0  start


   *(unsigned int*)(0x01C44000 + 0x214) = (((v_total-1)<<16)|0);//VDVBLKE1 524 0   end

*(unsigned int*)(0x01C44000 + 0x220) = ((0<<16)|0);//VDIMGOFF1

   *(unsigned int*)(0x01C44000 + 0x224) = ((v_actv<<16)|h_actv);//VDIMGSZ1  图像有效区域480 640

*(unsigned int*)(0x01C44000 + 0x23c) = (((h_total-1)<<16)|(h_actv-1));//VDHSYNC 639-799

*(unsigned int*)(0x01C44000 + 0x240) = (((v_actv-2)<<16)|0);//VDVSYNS1  478

   *(unsigned int*)(0x01C44000 + 0x244) = (((v_total-1)<<16)|0);//VDVSYNE1  524

   ////////////////////////////////////////////////////////////////////////////

   *(unsigned int*)(0x01C44000 + 0x230) = 0x00000000;//VDFLDT1

   *(unsigned int*)(0x01C44000 + 0x238) = 0x00001000|(h_actv/2);//VDTHRLD  50

   *(unsigned int*)(0x01C44000 + 0x254) = 0x00000000|(v_actv);//VDDISPEVT 1

   *(unsigned int*)(0x01C44000 + 0x260) = 0x00008006; //VDVINT

*(unsigned int*)(0x01C44000 + 0x25c) = 0x3fc0;//VDDEFVAL 缺省数据设置 red  20位 6:8:6

*(unsigned int*)(0x01C44000 + 0x204) = 0x400080c7;//VDCTL VCTL filed 选择   输出模式选择bit2-0  


   delay_loop3(0x80000);//延迟必须

   *(unsigned int*)(0x01C44000 + 0x204) = 0x000080d7;

   delay_loop3(0x80000);//延迟必须

   *(unsigned int*)(0x01C44000 + 0x204) = 0x000080c7;

   

 }

}

dm642的视频口输出的更多相关文章

  1. C#实现并口输出输入高低电位

    PC并行口各阵脚定义: 1.选通,PC->Printer 2-9 数据(D0-D7) 10.应答(ACK),Printer->PC 11.忙(BUSY),Printer->PC 12 ...

  2. stm32 MDK5软件仿真之查看io口输出

    软件MDK5 stm32的pack     打开MDK,添加工程 一.首先找到Project的Options选项,里面的Debug选为Use Simulator,也就是选择软件仿真. 然后再Logic ...

  3. ARGB32 to YUV12 利用 SDL1.2 SDL_ttf 在视频表面输出文本

    提示:ARGB alpha通道的A + 原YUV表面的y0 + 要写进去的y1 = 计算出新的y2. 计算公式为 ( y1 * a + y0 * ( 255 - a ) ) / 255 void rg ...

  4. 基于DM642 RAW采集格式的视频驱动开发及应用

    摘 要:为解决C64X系列数字信号处理器(DSP)视频驱动不能应用于原始数据格式(RAW)采集格式的问题,设计了DM642和电耦合元件(CCD)高清传感器的数据传输接口,并分析.修改用于标准格式的视频 ...

  5. moviepy音视频剪辑:使用VideoFileClip、AudioFileClip和write_videofile、write_audiofile进行音视频的加载和输出

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在本地进行音视频处理时,首先要从视频文件 ...

  6. 【DM642学习笔记七】缓冲区管理BufferManagement

       (参考文档:The TMS320DM642 VideoPort Mini-Driver ——3.2 Buffer Management)    认识输入/输出视频数据的缓冲区管理,有利于对视频图 ...

  7. 集显也能硬件编码:Intel SDK && 各种音视频编解码学习详解

    http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...

  8. 【miscellaneous】各种音视频编解码学习详解

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  9. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

随机推荐

  1. Python CRM项目八

    自定义用户认证 目的:实现Django自定义的认证系统,在生产环境都是根据此代码进行定制的 步骤: 1.在settings文件中配置要使用的类 #命名规则 app名称.类名 AUTH_USER_MOD ...

  2. 模仿spring-aop的功能,利用注解搭建自己的框架。

    入JAVA坑7月有余,也尝试自己手动搭建框架,最近对spring aop的这种切面很着迷,为此记录下自己目前搭出来的小小的demo,后续有时间也会继续改进自己的demo.望大神们不吝赐教. 主要还是运 ...

  3. 使用zii.widgets.CDetailView显示内容

    Yii里的CDetailView可以用来显示详细内容,有时会遇到显示的html内容是被转义过的,也就是原本是要显示html样式的,结果显示出来的内容却是把html当作普通文本了. 先看一个CDetai ...

  4. CF 208E. Blood Cousins [dsu on tree 倍增]

    题意:给出一个森林,求和一个点有相同k级祖先的点有多少 倍增求父亲然后和上题一样还不用哈希了... #include <iostream> #include <cstdio> ...

  5. Azure Automation (5) 调整Azure SQL Database DTU

    <Windows Azure Platform 系列文章目录> 之前有客户提了需求,在9点以后,把Azure SQL Database DTU提高 在凌晨,把Azure SQL Datab ...

  6. cocos2d-x代码阅读笔记 - 入口

    每一个C\C++程序都有一个非常有名的入口函数 main(),在Windows系统下,这个函数就变成了WinMain函数. 在cocos2d-x 2.0.4的Windows版本中,main函数非常简单 ...

  7. WPF XAML 资源样式模板属性存放位置

    WPF的XAML 资源申明 类似HTML. 整体来说分3种1.行类资源样式属性 1.1 行内属性 <Button Content="按钮" Foreground=" ...

  8. Spring Mybatis-分页插件使用

    Mybatis分页切入点 Mybatis内部有个plugins(插件)概念,本质上属于拦截器的思想.具体的解析可见外文MyBatis拦截器原理探究.本文将在此基础上直接展示实现代码和其他的相关解析 分 ...

  9. HAProxy+Nginx 负载均衡

    一.什么是HAProxy HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点, ...

  10. Netty ByteBuf梳理

    我们知道,网络数据的基本单位总是字节.Java NIO提供了ByteBuffer作为它的字节容器,但是这个类使用起来过于复杂,而且也有些繁琐. Netty的ByteBuffer替代品是ByteBuf, ...