S3C6410图形旋转裸机驱动
扫描二维码
随时随地手机看文章
这个比较简单,一次成功,没遇到任何问题.
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
#defineGR_TIMEOUT1000000
/*************************************************************************************************************************
*函数:voidRotation_SetInputImage(u8TypeImage)
*功能:设置输入旋转图像格式
*参数:TypeImage:图像格式,见宏定义
#defineGR_YUV4200
#defineGR_YUV4223
#defineGR_RGB5654
#defineGR_RGB8885
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20121016
*最后修改时间:20121016
*说明:无
*************************************************************************************************************************/
voidRotation_SetInputImage(u8TypeImage)
{
rGR_CTRLCFG&=~(0x7<<13);//清除设置
rGR_CTRLCFG|=(0x7&TypeImage)<<13;
}
/*************************************************************************************************************************
*函数:voidRotation_SetRotationDeg(u8Degree)
*功能:设置图像旋转角度
*参数:Degree:旋转角度,见宏定义
#defineGR_0Deg0//0
#defineGR_90Deg1//90
#defineGR_180Deg2//180
#defineGR_270Deg3//270
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20121016
*最后修改时间:20121016
*说明:翻转和旋转不能同时生效
*************************************************************************************************************************/
voidRotation_SetRotationDeg(u8Degree)
{
rGR_CTRLCFG&=~(0x3<<6);//清除设置
rGR_CTRLCFG|=(0x3&Degree)<<6;
}
/*************************************************************************************************************************
*函数:voidRotation_SetFlipDir(u8Direction)
*功能:设置图像翻转方向
*参数:Direction:翻转方向,见宏定义
#defineGR_NotFlip0//不翻转
#defineGR_VerFlip2//垂直翻转
#defineGR_HorFlip3//水平翻转
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20121016
*最后修改时间:20121016
*说明:翻转和旋转不能同时生效
*************************************************************************************************************************/
voidRotation_SetFlipDir(u8Direction)
{
rGR_CTRLCFG&=~(0x3<<4);//清除设置
rGR_CTRLCFG|=(0x3&Direction)<<4;
}
/*************************************************************************************************************************
*函数:voidRotation_SetSourImageAddr(u32RGB_Y_Addr,u32CB_Addr,u32CR_Addr)
*功能:设置源图像地址
*参数:RGB_Y_Addr:RGB或者Y组成部分
*CB_Addr:CB组成部分
*CR_Addr:CR组成部分
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20121016
*最后修改时间:20121016
*说明:无
*************************************************************************************************************************/
voidRotation_SetSourImageAddr(u32RGB_Y_Addr,u32CB_Addr,u32CR_Addr)
{
rGR_SRCADDRREG0=RGB_Y_Addr;
rGR_SRCADDRREG1=CB_Addr;
rGR_SRCADDRREG2=CR_Addr;
}
/*************************************************************************************************************************
*函数:voidRotation_SetDesImageAddr(u32RGB_Y_Addr,u32CB_Addr,u32CR_Addr)
*功能:设置目标图像地址
*参数:RGB_Y_Addr:RGB或者Y组成部分
*CB_Addr:CB组成部分
*CR_Addr:CR组成部分
*返回:无
*依赖:底层宏定义
*作者:cp1300@139.com
*时间:20121016
*最后修改时间:20121016
*说明:无
*************************************************************************************************************************/
voidRotation_SetDesImageAddr(u32RGB_Y_Addr,u32CB_Addr,u32CR_Addr)
{
rGR_DESTADDRREG0=RGB_Y_Addr;