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音频 编解码学习笔 ...
随机推荐
- 面试中的Https
在Http协议中有可能存在信息窃听或身份伪装的安全问题.使用HTTPS通信机制可以有效地防止这些问题. Https Http的缺点 通信使用明文(不加密),内容可能会被窃听. 不验证通信方的身份,因此 ...
- Spring MVC的DispatcherServlet
Spring MVC提供了一个名为org.springframework.web.servlet.DispatcherServlet的Selvet充当前端控制器,所有的请求驱动都围绕这个Dispatc ...
- Python学习笔记(三): 收集参数
如下代码: >>>def print_params(title,*params) print title print params >>>print_params( ...
- Redis .Net 基本类型使用之南
前言 最近需要使用redis,看了一些文档,也在博客园里面看了很多文章,这里就记录下Redis常用类型的操作. String string是redis基本类型,一般通过Get,Set 命令进行操作,这 ...
- 配置apache使之支持浏览器端的缓存
当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求. 一 ...
- Oracle 修改表操作
如题: --增加列操作: alert table 表名 add 列名 列的类型 eg:alter table EMP1 add pwd varchar2(10); --删除列操作: alert ...
- BZOJ 2034: [2009国家集训队]最大收益 [贪心优化 Hungary]
2034: [2009国家集训队]最大收益 题意:\(n \le 5000\)个区间\(l,r\le 10^8\),每个区间可以选一个点得到val[i]的价值,每个点最多选1次,求最大价值 线段树优化 ...
- BZOJ 4765: 普通计算姬 [分块 树状数组 DFS序]
传送门 题意: 一棵树,支持单点修改和询问以$[l,r]$为根的子树的权值和的和 只有我这种不会分块的沙茶不会做这道题吗? 说一点总结: 子树和当然上$dfs$序了,询问原序列一段区间所有子树和,对原 ...
- SparkSteaming运行流程分析以及CheckPoint操作
本文主要通过源码来了解SparkStreaming程序从任务生成到任务完成整个执行流程以及中间伴随的checkpoint操作 注:下面源码只贴出跟分析内容有关的代码,其他省略 1 分析流程 应用程序入 ...
- Angular Pipe的应用
1-在html文件中使用管道:(管道符合使用,用':'号隔开) ①页面中添加: <div class="table_content" *ngFor="let ite ...