这个比较简单,一次成功,没遇到任何问题.
GraphRotation.c
/*************************************************************************************************************
* 文件名: GraphRotation.c
* 功能: S3C6410 图形旋转底层驱动函数
* 作者: cp1300@139.com
* 创建时间: 2012年10月15日21:12
* 最后修改时间:2012年10月15日
* 详细: 图形旋转控制器底层驱动
*************************************************************************************************************/
#include "system.h"
#include "GraphRotation.h"
#include "delay.h"
//超时,单位US
#define GR_TIMEOUT 1000000
/*************************************************************************************************************************
*函数 : void Rotation_SetInputImage(u8 TypeImage)
*功能 : 设置输入旋转图像格式
*参数 : TypeImage:图像格式,见宏定义
#define GR_YUV420 0
#define GR_YUV422 3
#define GR_RGB565 4
#define GR_RGB888 5
*返回 : 无
*依赖 : 底层宏定义
*作者 : cp1300@139.com
*时间 : 20121016
*最后修改时间: 20121016
*说明 : 无
*************************************************************************************************************************/
void Rotation_SetInputImage(u8 TypeImage)
{
rGR_CTRLCFG &= ~(0x7 << 13); //清除设置
rGR_CTRLCFG |= (0x7 & TypeImage) << 13;
}
/*************************************************************************************************************************
*函数 : void Rotation_SetRotationDeg(u8 Degree)
*功能 : 设置图像旋转角度
*参数 : Degree:旋转角度,见宏定义
#define GR_0Deg 0 //0
#define GR_90Deg 1 //90
#define GR_180Deg 2 //180
#define GR_270Deg 3 //270
*返回 : 无
*依赖 : 底层宏定义
*作者 : cp1300@139.com
*时间 : 20121016
*最后修改时间: 20121016
*说明 : 翻转和旋转不能同时生效
*************************************************************************************************************************/
void Rotation_SetRotationDeg(u8 Degree)
{
rGR_CTRLCFG &= ~(0x3 << 6); //清除设置
rGR_CTRLCFG |= (0x3 & Degree) << 6;
}
/*************************************************************************************************************************
*函数 : void Rotation_SetFlipDir(u8 Direction)
*功能 : 设置图像翻转方向
*参数 : Direction:翻转方向,见宏定义
#define GR_NotFlip 0 //不翻转
#define GR_VerFlip 2 //垂直翻转
#define GR_HorFlip 3 //水平翻转
*返回 : 无
*依赖 : 底层宏定义
*作者 : cp1300@139.com
*时间 : 20121016
*最后修改时间: 20121016
*说明 : 翻转和旋转不能同时生效
*************************************************************************************************************************/
void Rotation_SetFlipDir(u8 Direction)
{
rGR_CTRLCFG &= ~(0x3 << 4); //清除设置
rGR_CTRLCFG |= (0x3 & Direction) << 4;
}
/*************************************************************************************************************************
*函数 : void Rotation_SetSourImageAddr(u32 RGB_Y_Addr,u32 CB_Addr,u32 CR_Addr)
*功能 : 设置源图像地址
*参数 : RGB_Y_Addr : RGB或者Y组成部分
* CB_Addr:CB组成部分
* CR_Addr:CR组成部分
*返回 : 无
*依赖 : 底层宏定义
*作者 : cp1300@139.com
*时间 : 20121016
*最后修改时间: 20121016
*说明 : 无
*************************************************************************************************************************/
void Rotation_SetSourImageAddr(u32 RGB_Y_Addr,u32 CB_Addr,u32 CR_Addr)
{
rGR_SRCADDRREG0 = RGB_Y_Addr;
rGR_SRCADDRREG1 = CB_Addr;
rGR_SRCADDRREG2 = CR_Addr;
}
/****************************************************************************************************************