📄 tv.c
字号:
// =============================================================
// 文件名称:TV.c
// 功能描述: TV初始化
// 维护记录: 2007-9-22 by chengju modify
// 2007-11-16 by liuxue modified
// =============================================================
#include "SPCE3200_Constant.h"
#include "SPCE3200_Register.h"
#include "TV.h"
// =============================================================
// 语法格式: void TV_Init(unsigned int Mode, unsigned int ColorModeIN,
// unsigned int FB1_Addr, unsigned int FB2_Addr, unsigned int FB3_Addr);
// 实现功能: TV的初始化,TV帧缓冲地址的设置,TV模式的设置
// 参数: MODE: VGA 或者 QVGA;
// ColorModeIN: YUNIN 或者 RGB565IN;
// FB1_Addr、FB2_Addr、FB3_Addr: TV Frame Buffer地址
// 返回值: 无
// =============================================================
void TV_Init(unsigned int Mode, unsigned int ColorModeIN,
unsigned int FB1_Addr, unsigned int FB2_Addr, unsigned int FB3_Addr)
{
*P_TV_CLK_CONF = C_TV_CLK_EN | C_TV_RST_DIS; // 使能TV 时钟
*P_TV_VIDEODAC_CTRL = C_TV_VIDEODAC_EN; // 使能Video DAC
*P_TV_MODE_CTRL = C_TV_CTRL_EN // 使能TV
| C_TV_NTSC_MODE // 选择NTSC 制式C_TV_NTSC_MODE
| C_TV_NOINTERLACE_MODE // 选择逐行扫描方式
| C_TV_NTSC_TYPE // 选择NTSC 类型
| C_TV_LITTLE_ENDIAN; // 选择小端模式
if(Mode == VGA)
{
*P_TV_MODE_CTRL |= C_TV_VGA_MODE; // 选择VGA(640*480)模式
}
else if(Mode == QVGA)
{
*P_TV_MODE_CTRL |= C_TV_QVGA_MODE; // 选择QVGA(320*240)模式
}
if(ColorModeIN == RGB565IN)
{
*P_TV_MODE_CTRL |= C_TV_RGB_MODE // RGB模式
| C_TV_RGB565_MODE;
}
else if(ColorModeIN == YUVIN)
{
*P_TV_MODE_CTRL |= C_TV_YCBCR_MODE; // YUV模式
}
TV_Buffer_Set(FB1_Addr, FB2_Addr, FB3_Addr);
TV_Buffer_Sel(0);
}
// =============================================================
// 语法格式: void TV_Buffer_Set(unsigned int FB1_Addr, unsigned int FB2_Addr,
// unsigned int FB3_Addr)
// 实现功能: TV的缓冲区地址设置
// 参数: FB1_Addr:缓冲区开始地址1
// FB2_Addr:缓冲区开始地址2
// FB3_Addr:缓冲区开始地址3
// 返回值: 无
// =============================================================
void TV_Buffer_Set(unsigned int FB1_Addr, unsigned int FB2_Addr, unsigned int FB3_Addr)
{
*P_TV_BUFFER_SA1 = FB1_Addr;
*P_TV_BUFFER_SA2 = FB2_Addr;
*P_TV_BUFFER_SA3 = FB3_Addr;
}
// =============================================================
// 语法格式: void TV_Buffer_Sel(unsigned int Sel)
// 实现功能: TV的缓冲区选择
// 参数: Sel:TV Frame Buffer选择
// 返回值: 无
// =============================================================
void TV_Buffer_Sel(unsigned int Sel)
{
*P_TV_BUFFER_SEL = Sel;
}
// =============================================================
// 语法格式: void TV_SATURATION_Setup(unsigned int Satu)
// 实现功能: TV的饱和度设置,默认值为0x14
// 参数: Satu:饱和度
// 返回值: 无
// =============================================================
void TV_SATURATION_Setup(unsigned int Satu)
{
*P_TV_SATURATION_SETUP = Satu & 0x000000ff;
}
// =============================================================
// 语法格式: void TV_HUE_Setup(unsigned int Hue)
// 实现功能: TV的色相设置,默认值为0x00
// 参数: Hue:色相
// 返回值: 无
// =============================================================
void TV_HUE_Setup(unsigned int Hue)
{
*P_TV_HUE_SETUP = Hue & 0x000000ff;
}
// =============================================================
// 语法格式: void TV_FADE_Setup(unsigned int Fade)
// 实现功能: TV的色相设置,默认值为0x00
// 参数: Fade:淡入淡出设置
// 返回值: 无
// =============================================================
void TV_FADE_Setup(unsigned int Fade)
{
*P_TV_FADE_SETUP = Fade & 0x000000ff;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -