dm642的视频口输出
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的视频口输出的更多相关文章
- C#实现并口输出输入高低电位
		
PC并行口各阵脚定义: 1.选通,PC->Printer 2-9 数据(D0-D7) 10.应答(ACK),Printer->PC 11.忙(BUSY),Printer->PC 12 ...
 - stm32 MDK5软件仿真之查看io口输出
		
软件MDK5 stm32的pack 打开MDK,添加工程 一.首先找到Project的Options选项,里面的Debug选为Use Simulator,也就是选择软件仿真. 然后再Logic ...
 - ARGB32 to YUV12 利用 SDL1.2 SDL_ttf 在视频表面输出文本
		
提示:ARGB alpha通道的A + 原YUV表面的y0 + 要写进去的y1 = 计算出新的y2. 计算公式为 ( y1 * a + y0 * ( 255 - a ) ) / 255 void rg ...
 - 基于DM642 RAW采集格式的视频驱动开发及应用
		
摘 要:为解决C64X系列数字信号处理器(DSP)视频驱动不能应用于原始数据格式(RAW)采集格式的问题,设计了DM642和电耦合元件(CCD)高清传感器的数据传输接口,并分析.修改用于标准格式的视频 ...
 - moviepy音视频剪辑:使用VideoFileClip、AudioFileClip和write_videofile、write_audiofile进行音视频的加载和输出
		
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在本地进行音视频处理时,首先要从视频文件 ...
 - 【DM642学习笔记七】缓冲区管理BufferManagement
		
(参考文档:The TMS320DM642 VideoPort Mini-Driver ——3.2 Buffer Management) 认识输入/输出视频数据的缓冲区管理,有利于对视频图 ...
 - 集显也能硬件编码:Intel SDK   && 各种音视频编解码学习详解
		
http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...
 - 【miscellaneous】各种音视频编解码学习详解
		
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
 - 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
		
目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...
 
随机推荐
- IDEA精髓快捷键
			
删除一行:Ctrl+X 快速查找:Ctrl+F 打开文件目录结构: Ctrl+F12 可以把代码包在一个块内:Ctrl+Alt+T 替换文本:Ctrl+R, Alt+Shift+Up/Down,上/下 ...
 - 百度坐标(BD-09)、国测局坐标(火星坐标,GCJ-02)和WGS-84坐标互转
			
// 坐标转换 var coordTransform = (function () { // 一些常量 var PI = 3.1415926535897932384626; var X_PI = 3. ...
 - 学习dos命令行总结
			
dir:列出当前目录下的所有文件及文件夹. md 文件夹:创建文件夹 rd 文件夹:删除文件夹 echo 文件内容>文件名(扩展名):创建带文件内容的新文件 echo 文件内容>>文 ...
 - Effective Java 第三版——31.使用限定通配符来增加API的灵活性
			
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
 - JDK,JRE,JVM的区别与联系
			
JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工 ...
 - CodeChef Chef and Churu [分块]
			
题意: 单点修改$a$ 询问$a$的区间和$f$的区间和 原来普通计算机是这道题改编的吧... 对$f$分块,预处理$c[i][j]$为块i中$a_j$出现几次,$O(NH(N))$,只要每个块差分加 ...
 - BZOJ 3907: 网格 [Catalan数 高精度]
			
3907: 网格 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 402 Solved: 180[Submit][Status][Discuss] De ...
 - WdatePicker-限制日期选择
			
场景: 1. 开始时间,和结束时间最大选择今天. 2. 开始时间和结束时间的最大时间间隔为30天. jsp代码: <!-- 时间段 --> <form> <!-- 开始时 ...
 - java递归
			
package com.sun.test; import java.util.ArrayList; import java.util.List; /** * 递归 * */ public class ...
 - Linux下绝对经典的命令
			
1.使用远程终端时,可以使用如下命令: screen tmux 2.下载文件可以使用如下命令: curl wget 3.压缩解压缩可以使用: tar .zip.rar 4.使用抓包工具 tcpdump ...