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;
   
 }

}

 

时间: 2024-10-25 21:29:36

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

dsp-dm642的IO口输出的电压信号频率多高?和cpu主频一样吗?

问题描述 dm642的IO口输出的电压信号频率多高?和cpu主频一样吗? 5C dm642的IO口输出的电压信号频率多高?和cpu主频一样吗?现在测的IO口的输出电压为2.4v!

Flixlab:借力云计算加速iPhone视频渲染输出

北京时间7月25日消息,<移动新发现>今日报道,苹果iPhone上运行各种软件速度都很快,但是有一种应用却是"慢如蜗牛"--视频输出.最近,美国一家公司推出了一种借助云计算加快视频输出的应用软件Flixlab. 视频渲染和输出,即使是在台式机上也是一件费时费力的工作.之前,iPhone用户可以使用苹果的iMovie软件来编辑和输出视频,据悉,渲染和输出每一分钟的手机视频,需耗时两分钟.显然用户体验并不理想. 最近美国Flixlab公司推出一款手机软件,它将把用户需要渲染和输

大咖|英特尔中国研究院院长宋继强:我们是如何与李宇春打造全球第一支三维人脸特效的音乐视频的

上个月底,李宇春一支据说筹备时间长达6个月的mv正式发布.这首基于英特尔人工智能技术的MV,将电子曲风的浪漫情歌与尖端科技结合,一上线即火遍全网.在11月15日刚刚结束的2017英特尔人工智能大会上,英特尔中国研究院院长宋继强揭秘了这支有三维人脸特效的音乐视频是如何实现的. 此外,英特尔全球副总裁兼中国区总裁杨旭本次大会上宣告了英特尔在人工智能领域的三大战略方向:创新技术.广泛合作.推动应用.本次大会以全栈作为核心关键词,发布了从前端到后端的一系列最新研究成果. 例如,英特尔在近期推出了BigD

如何实现秒级搭建视频网站?

视频服务的现状和未来  视频服务非常火爆,图中可以看到,许多视频应用嵌入了直播,视频是融入生活的,未来还有许多应用没有嵌入视频服务.用户未来在视频中花的时间会越来越长,现在,应用嵌入视频服务正是一个好时机.   视频服务的框架及服务体系   服务体系的价值须从"体验.安全.成本.功能" 四个方面来考量.   阿里云视频服务有三层体系.第一层体系是基础服务,阿里云的视频服务是架设在阿里云的云服务器ECS.对象存储OSS.云数据库RDS和CDN等一系列产品技术之上的服务.第二层体系是视频相

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePickerControlle

视频-android mediaPlayer播放了1.4G的MP4 抛出 传输量过大异常

问题描述 android mediaPlayer播放了1.4G的MP4 抛出 传输量过大异常 package com.example.zyc.surfaceview; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os

视频-Android学习surfaceView遇到问题。可能很简单,希望有人指点迷津

问题描述 Android学习surfaceView遇到问题.可能很简单,希望有人指点迷津 我这几天用surfaceView来做视频播放的时候,file文件读取是没有问题的,但是在之后setDataSource()和.prepare()这两个方法的其中一个(抱歉,我实在不能确定问题到底出在这两个中的哪一个)抛出了IO异常.具体代码如下,我都做注释 package com.example.zyc.surfaceview; import android.media.MediaPlayer; impor

【短视频SDK - 参数解析】对焦模式、裁剪模式、视频质量、分辨率、视频比例、帧率、关键帧间隔等参数解析

1.参数简析 参数名称 简介 影响 裁剪模式 分为填充模式和裁剪模式 影响图像画面的展示细节 视频质量 是指生成的视频的输出参数,是一组参数决定的数值 视频清晰度和文件大小 分辨率 图像分辨率则是单位英寸中所包含的像素点数,分辨率影响图像大小,与图像大小成正比:分辨率越高,图像越大:分辨率越低,图像越小. 影响视频文件大小和画面大小 视频比例 视频预览和输出的比例,常用1:1,4:3,3:4,16:9,9:16 根据需求不同展示不同的比例,影响视频大小 帧率 默认:25fps 影响视频的连贯度,

《Sony Vegas Pro 12标准教程》——2.8 影片的输出

2.8 影片的输出 现在,我们也检查完影片了,确定基本没有什么问题了.那么,我们不仅要给自己看,而且还准备分享给朋友家人来欣赏但每个人的电脑都不一样,每个人所安装的播放器也不一样,应该怎么样才能输出一个大家都能观看的视频格式呢? 本小节,我们就大致讲解一下视频的输出. 2.8.1 输出的准备工作 现在,时间线上的工作已经完成了.接下来,我们需要将时间线上的文件输出成一个视频文件,以方便大家在电脑或者其他设备上观看.当然,不是随随便便输出一下就可以的.在输出之前,依然有很多事情要做. 1.设置渲染