int ClockConfig(void)
{
u32 DIVCLK_DIVIDE = 10;
u32 CLKFBOUT_MULT = 53;
u32 CLKFBOUT_FRAC = 625;
u32 CLKOUT0_DIVIDE=11;
u32 CLKOUT0_FRAC=875;
u32 clock_config_reg_0;
u32 clock_config_reg_2;
u32 lock;
u32 timeout;
clock_config_reg_0 = ((u32)1<<26) | (CLKFBOUT_FRAC<<16) | (CLKFBOUT_MULT<<8) | DIVCLK_DIVIDE;
clock_config_reg_2 = ((u32)1<<18) | (CLKOUT0_FRAC<<8) | CLKOUT0_DIVIDE;
Xil_Out32(XPAR_CLK_WIZ_1_BASEADDR+0x200, clock_config_reg_0);
Xil_Out32(XPAR_CLK_WIZ_1_BASEADDR+0x208, clock_config_reg_2);
//fclk*CLKFBOUT_MULT.CLKFBOUT_FRAC/DIVCLK_DIVIDE/CLKOUT0_DIVIDE.CLKOUT0_FRAC=100
//fs=44.1k mclk=90.3168M
//clk0=100*53.625/5/11.875=90.316
usleep(1000);
lock = Xil_In32(XPAR_CLK_WIZ_1_BASEADDR+0x4) & 0x1;
if(lock) //check for lock
{
//Video Clock Generator not locked
Xil_Out32(XPAR_CLK_WIZ_1_BASEADDR+0x25C, 0x7);
usleep(1000);
Xil_Out32(XPAR_CLK_WIZ_1_BASEADDR+0x25C, 0x2);
timeout = 100000;
do
{
lock = Xil_In32(XPAR_CLK_WIZ_1_BASEADDR+0x4) & 0x1;
--timeout;
if(!timeout)
{
print("ERR:: Video Clock Generator failed lock\r\n");
return(XST_FAILURE);
}
}
while(!lock);
}
print("Video Clock Generator locked\r\n");
return(XST_SUCCESS);
}
VideoClockGen_WriteReg 可以更换为 xil_Out32();
VideoClockGen_ReadReg可以更换为xil_In32();
 一共4个寄存器

0x200
【7:0】八位分频值应用于所有输出时钟。
【15:8】乘法的整数部分
【25:16】乘法的小数部分
【26】对于分数乘法,该位应设置为1,将该位设置为0将使用默认配置。

CLKFBOUT分数除法的值可以为0到875,代表乘积乘以1000。

0x208 

位[7:0] = CLKOUT0_DIVIDE    整数
整数部分clkout0除数
例如,对于2.250,该值为2 = 0x2
位[17:8] = CLKOUT0_FRAC除数(3)   小数
clkout0的分数部分划分值
例如,对于2.250,该值为250 = 0xFA
位[18] = CLKOUT0_FRAC_EN(3)    使能
对于分数除法,该位应设置为1

计算方式 clko=mclk*(0x200寄存器)【25:8】/【7:0】/(208寄存器)【17:0】

clock gen sdk 代码笔记的更多相关文章

  1. JS SDK 随手笔记

    JS SDK 随手笔记 窗口模块 Frame/Multi Frame 对话框 页面间的通讯 生命周期 窗口层叠 窗口模块 窗口模块是是AppCan移动应用界面最基本的单位.窗口是每个界面布局的基础,他 ...

  2. <Python Text Processing with NLTK 2.0 Cookbook>代码笔记

    如下是<Python Text Processing with NLTK 2.0 Cookbook>一书部分章节的代码笔记. Tokenizing text into sentences ...

  3. 【hadoop代码笔记】Mapreduce shuffle过程之Map输出过程

    一.概要描述 shuffle是MapReduce的一个核心过程,因此没有在前面的MapReduce作业提交的过程中描述,而是单独拿出来比较详细的描述. 根据官方的流程图示如下: 本篇文章中只是想尝试从 ...

  4. 【hadoop代码笔记】hadoop作业提交之汇总

    一.概述 在本篇博文中,试图通过代码了解hadoop job执行的整个流程.即用户提交的mapreduce的jar文件.输入提交到hadoop的集群,并在集群中运行.重点在代码的角度描述整个流程,有些 ...

  5. 【Hadoop代码笔记】目录

    整理09年时候做的Hadoop的代码笔记. 开始. [Hadoop代码笔记]Hadoop作业提交之客户端作业提交 [Hadoop代码笔记]通过JobClient对Jobtracker的调用看详细了解H ...

  6. 将本地开发完的SDK代码上传到SVN上面:an error occurred while contacting the repository The server may be unreachable or the URL may be incorrect

    将本地开发完的SDK代码上传到SVN上面:an error occurred while contacting the repository  The server may be unreachabl ...

  7. [学习笔记] SSD代码笔记 + EifficientNet backbone 练习

    SSD代码笔记 + EifficientNet backbone 练习 ssd代码完全ok了,然后用最近性能和速度都非常牛的Eifficient Net做backbone设计了自己的TinySSD网络 ...

  8. 《VR入门系列教程》之22---GearVR SDK代码剖析

    GearVR SDK代码剖析     接下来我们来了解一下GearVR开发包的底层代码,它底层的代码和之前在第三章中讲的桌面SDK代码非常类似,当然,也有许多不同的地方.     首先,我们看看如何构 ...

  9. DW网页代码笔记

    DW网页代码笔记 1.样式.       class  插入类样式  标签技术(html)解决页面的内容样式技术(css)解决页面的外观脚本技术       解决页面动态交互问题<form> ...

随机推荐

  1. luogu P2553 [AHOI2001]多项式乘法

    传送门 这题就是普及暴力模拟板子FFT板子,只要把多项式读入进来FFT一下就好了(不会的右转P3803) 重点是读入,我本以为这个字符串里到处都有空格,这里提供一种简单思路: 因为里面可能有空格,所以 ...

  2. TensorFlow从入门到理解(一):搭建开发环境【基于Ubuntu18.04】

    *注:教程及本文章皆使用Python3+语言,执行.py文件都是用终端(如果使用Python2+和IDE都会和本文描述有点不符) 一.安装,测试,卸载 TensorFlow官网介绍得很全面,很完美了, ...

  3. 美团面试-canvas实现放射图

    一个nice的面试官对面试经验匮乏者的温暖To snow peak,哈哈 drawRadial(100, 100, 30, 10) /** *@description *用canvas画放射图 * * ...

  4. gradle文件中自定义字段值在java代码中使用

    1. 在build.gradle 中  buildConfigField  的参数有3个 第一个类型 第二个为名称 第三个是值 如果是字符串类型 请不要忘记 双引号! buildTypes {     ...

  5. 列式数据库~clickhouse问题汇总

    一 简介:常见的clickhouse 问题汇总 二 问题系列  1 内存问题     Code: 241. DB::Exception: Received from localhost:9000, : ...

  6. 51nod 1379 索函数

    Fib[0]=0,Fib[1]=1,Fib[n]=Fib[n-1]+Fib[n-2] if n>1. 定义索函数Sor(n)=Fib[0]| Fib[1] |Fib[2]|…|Fib[n]. 给 ...

  7. python小练习,利用dict,做一个简单的登录。

    '''利用字典实现登录'''users=[{'username':'jerry','pwd':'123456'},{'username':'tom','pwd':'1'}] def login(use ...

  8. RESTful API 设计指南(转)

    网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...

  9. 【转】Leveldb源码分析——1

    先来看看Leveldb的基本框架,几大关键组件,如图1-1所示. Leveldb是一种基于operation log的文件系统,是Log-Structured-Merge Tree的典型实现.LSM源 ...

  10. Linux中error while loading shared libraries错误解决办法

    默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local/lib目录下:当运行程序需要链接动态库 ...