完整教程:VESA时序和行场消隐计数逻辑代码
VESA时序和行场消隐计数逻辑代码
一、需求
1.在设计中屡屡要对VGA或者HDMI时序进行计算
2.查手册比较麻烦
3.客户可能有定制化需求
二、利用代码来实现时序
例如:
1.要实现的是SDI接口1920x1080p@50hz的显示,SDI时钟为148.5MHZ;
2.一个时钟处理两个tap的像素
int main(){
float x = 0;
int xx = 0;
int y = 0;
float result = 0;
int clk_freq = 148500000;//hz
int pixel_tap = 2;//one pixel clock transmit tap number
int frame_hz = 50;
float sum_x_y = clk_freq*pixel_tap*1.0 / frame_hz;
//resolution:1920x1080
int x_resolution = 1920;
for (int i = x_resolution; i <= (x_resolution*4) ;i++) {
y = i;
x = sum_x_y / ( i);//
xx = sum_x_y / ( i);
result = x - xx;
if(result==0)
std::cout << " x=" << x << " y="<<y << std::endl;
}
}
3.上述代码计算的x,y就是你需的分辨率时序配置。
浙公网安备 33010602011771号