📄 iic_s5x532.h
字号:
//====================================================================
// File Name : IIC_S5X532.h
// Function : IIC Tx/Rx Test Program between S3C2440 and S5X532
//
// Date : October 7, 2003
//
// Revision History
// 0.0 : 2003. 08. 05 by Y. H. Lee
// 0.1 : 2003. 10. 07 Edited by Y. H. Lee
//====================================================================
#ifndef __IICS5X532_H__
#define __IICS5X532_H__
#ifdef __cplusplus
extern "C"{
#endif
#include "def.h"
#include "24a0lib.h"
#include "24a0addr.h"
#define OV7620 (FALSE)
#define S5X532 (TRUE)
#if (OV7620 == TRUE)
#define SlaveID 0x42 //OV7620 Slave ID
#elif (S5X532 == TRUE)
#define SlaveID 0x5a //S5X532 Slave ID
#endif
#define WRDATA (1)
#define RDDATA (3)
#define SETRDADDR (4)
#define IICBUFSIZE 0x20
static U8 _iicData[IICBUFSIZE];
static volatile int _iicDataCount;
static volatile int _iicStatus;
static volatile int _iicMode;
static int _iicPt;
const unsigned char S5X532_TV[][2] =
{
// page 5
{0xec,0x05},
{0x08,0x55},
{0x0a,0x75},
{0x0c,0x90},
{0x0e,0x18},
{0x12,0x09},
{0x14,0x9d},
{0x16,0x90},
{0x1a,0x18},
{0x1c,0x0c},
{0x1e,0x09},
{0x20,0x06},
{0x22,0x20},
{0x2a,0x00},
{0x2d,0x04},
{0x12,0x24},
// page 3
{0xec,0x03},
{0x0c,0x09},
{0x6c,0x09},
{0x2b,0x10}, // momo clock inversion
// page 2
{0xec,0x02},
{0x03,0x09},
{0x05,0x08},
{0x06,0x01},
{0x07,0xf8},
{0x15,0x25},
{0x30,0x29},
{0x36,0x12},
{0x38,0x04},
{0x1b,0x77}, // 24MHz : 0x77, 12MHz : 0x22
{0x1c,0x77}, // 24MHz : 0x77, 12MHz : 0x22
// page 1
{0xec,0x01},
{0x00,0x03}, //
{0x0a,0x08}, // 0x0-QQVGA, 0x06-CIF, 0x02-QCIF, 0x08-VGA, 0x04-QVGA, 0x0a-SXGA
{0x10,0x21}, // 0x21-ITU-R656(CrYCbY), 0x25-ITU-R601(CrYCbY)
{0x50,0x21}, // Hblank
{0x51,0x00}, // Hblank
{0x52,0xA1}, // Hblank
{0x53,0x02}, // Hblank
{0x54,0x01}, // Vblank
{0x55,0x00}, // Vblank
{0x56,0xE1}, // Vblank
{0x57,0x01}, // Vblank
{0x58,0x21}, // Hsync
{0x59,0x00}, // Hsync
{0x5a,0xA1}, // Hsync
{0x5b,0x02}, // Hsync
{0x5c,0x03}, // Vref
{0x5d,0x00}, // Vref
{0x5e,0x05}, // Vref
{0x5f,0x00}, // Vref
{0x70,0x0E},
{0x71,0xD6},
{0x72,0x30},
{0x73,0xDB},
{0x74,0x0E},
{0x75,0xD6},
{0x76,0x18},
{0x77,0xF5},
{0x78,0x0E},
{0x79,0xD6},
{0x7a,0x28},
{0x7b,0xE6},
{0x50,0x00},
{0x5c,0x00},
// page 0
{0xec,0x00},
{0x79,0x01},
{0x58,0x90},
{0x59,0xA0},
{0x5a,0x50},
{0x5b,0x70},
{0x5c,0xD0},
{0x5d,0xC0},
{0x5e,0x28},
{0x5f,0x08},
{0x50,0x90},
{0x51,0xA0},
{0x52,0x50},
{0x53,0x70},
{0x54,0xD0},
{0x55,0xC0},
{0x56,0x28},
{0x57,0x00},
{0x48,0x90},
{0x49,0xA0},
{0x4a,0x50},
{0x4b,0x70},
{0x4c,0xD0},
{0x4d,0xC0},
{0x4e,0x28},
{0x4f,0x08},
{0x72,0x82}, // main clock = 24MHz:0xd2, 16M:0x82, 12M:0x54
{0x75,0x05}, // absolute vertical mirror. junon
};
void S5X532_Iic_Test(void);
void S5X532_WriteByte(void);
void S5X532_ReadByte(void);
void S5X532_WriteBlock(void);
void S5X532_ReadBlock(void);
void Wr_S5X532(U32 slvAddr, U32 addr, U8 data);
void Rd_S5X532(U32 slvAddr, U32 addr, U8 *data);
void Run_Polling(void);
void Polling(void);
void __irq S5X532_IicInt(void);
#ifdef __cplusplus
}
#endif
#endif //__IICS5X532_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -