📄 iic.c
字号:
//====================================================================
// File Name : IIC.c
// Function : S3C2442 IIC-bus Master Tx/Rx mode Test Program
// (Interrupt / Non Interrupt (Polling))
// Program : Shin, On Pil (SOP)
// Date : May 21, 2002
// Version : 0.0
// History
// 0.0 : Programming start (March 11, 2002) -> SOP
//====================================================================
#include <string.h>
#include "2440addr.h"
#include "2440lib.h"
#include "def.h"
#include "IIC.h"
//#define __irq __attribute__ ((interrupt ("IRQ")))//USE_MAIN & SEMIHOSTING are valid only if ADS10==TRUE.
static U8 _iicData[IICBUFSIZE];
static volatile int _iicDataCount;
static volatile int _iicStatus;
static volatile int _iicMode;
static int _iicPt;
//===================================================================
// SMDK2442 IIC configuration
// GPE15=IICSDA, GPE14=IICSCL
// "Interrupt mode" for IIC block
//===================================================================
const unsigned char Ov9655_YCbCr8bit_T[][2] = {
// OMNI Vision
//{0x12,0x80},
{0x13,0x00},
{0x00,0x00},
{0x01,0x80},
{0x02,0x80},
{0x03,0x12},
{0x0e,0x61},
{0x0f,0x42},
{0x10,0xf0},
{0x11,0x01},
{0x12,0x62},
{0x16,0x14},
{0x17,0x16},
{0x18,0x02},
{0x19,0x01},
{0x1a,0x3d},
{0x1e,0x24},
{0x24,0x4c},
{0x25,0x46},
{0x26,0x82},
{0x27,0x08},
{0x28,0x08},
{0x2a,0x00},
{0x2b,0x00},
{0x2c,0x08},
{0x32,0xff},
{0x33,0x00},
{0x34,0x3d},
{0x35,0x00},
{0x36,0xfa},
{0x38,0x72},
{0x39,0x57},
{0x3a,0x80},
{0x3b,0xac},
{0x3d,0x99},
{0x3e,0x0c},
{0x3f,0xc1},
{0x40,0xc0},
{0x41,0x00},
{0x42,0xc0},
{0x6b,0x5a},
{0x70,0x21},
{0x71,0x78},
{0x72,0x00},
{0x73,0x01},
{0x74,0x3a},
{0x75,0x35},
{0x76,0x01},
{0x77,0x02},
{0x7a,0x20},
{0x7b,0x1C},
{0x7c,0x28},
{0x7d,0x3C},
{0x7e,0x5A},
{0x7f,0x68},
{0x80,0x76},
{0x81,0x80},
{0x82,0x88},
{0x83,0x8f},
{0x84,0x96},
{0x85,0xa3},
{0x86,0xaf},
{0x87,0xc4},
{0x88,0xd7},
{0x89,0xe8},
{0x8a,0x23},
{0x8c,0x8d},
{0x90,0x7d},
{0x91,0x7b},
{0x9f,0x7a},
{0xa0,0x79},
{0xa1,0x40},
{0xa4,0x50},
{0xa5,0x68},
{0xa6,0x4a},
{0xa8,0xc1},
{0xa9,0xfa},
{0xaa,0x92},
{0xab,0x04},
{0xac,0x80},
{0xad,0x80},
{0xae,0x80},
{0xaf,0x80},
{0xb2,0xf2},
{0xb3,0x20},
{0xb4,0x20},
{0xb5,0x52},
{0xb6,0xaf},
{0xbb,0xae},
{0xb5,0x00},
{0xbc,0x7f},
{0xbd,0x7f},
{0xbe,0x7f},
{0xbf,0x7f},
{0xc0,0xaa},
{0xc1,0xc0},
{0xc2,0x01},
{0xc3,0x4e},
{0xC6,0x05},
{0xc7,0x80},
{0xc9,0xe0},
{0xca,0xe8},
{0xcb,0xf0},
{0xcc,0xd8},
{0xcd,0x93},
{0x4f,0x98},
{0x50,0x98},
{0x51,0x00},
{0x52,0x28},
{0x53,0x70},
{0x54,0x98},
{0x14,0x1a},
{0x3b,0x0c},
{0x43,0x0a},
{0x44,0xf0},
{0x45,0x46},
{0x46,0x62},
{0x47,0x2a},
{0x48,0x3c},
{0x58,0x1a},
{0x59,0x85},
{0x5a,0xa9},
{0x5b,0x64},
{0x5c,0x84},
{0x5d,0x53},
{0x5e,0x0e},
{0x69,0x0a},
{0x6c,0x04},
{0x6d,0x55},
{0x6e,0x00},
{0x6f,0x9d},
{0x62,0x00},
{0x63,0x00},
{0x64,0x02},
{0x65,0x20},
{0x66,0x01},
{0x9d,0x02},
{0x9e,0x03},
{0x29,0x15},
{0xa9,0xef},
{0x92,0x64},
{0x93,0x00},
{0xa2,0x68},
{0xa3,0x68},
{0x6a,0x68},
{0x13,0xe7}
};
const unsigned char Ov9655_YCbCr8bit_Ta[][2] = {
// OMNI Vision
//{0x12,0x80},
{0x13,0x00},
{0x00,0x00},
{0x01,0x80},
{0x02,0x80},
{0x03,0x12},
{0x0e,0x61},
{0x0f,0x42},
{0x10,0xf0},
{0x11,0x01},
{0x12,0x62},
{0x16,0x14},
{0x17,0x16},
{0x18,0x02},
{0x19,0x01},
{0x1a,0x3d},
{0x1e,0x24},
{0x24,0x4c},
{0x25,0x46},
{0x26,0x82},
{0x27,0x08},
{0x28,0x08},
{0x2a,0x00},
{0x2b,0x00},
{0x2c,0x08},
{0x32,0xff},
{0x33,0x00},
{0x34,0x3d},
{0x35,0x00},
{0x36,0xfa},
{0x38,0x72},
{0x39,0x57},
{0x3a,0x80},
{0x3b,0xac},
{0x3d,0x99},
{0x3e,0x0c},
{0x3f,0xc1},
{0x40,0xc0},
{0x41,0x00},
{0x42,0xc0},
{0x6b,0x5a},
{0x70,0x21},
{0x71,0x78},
{0x72,0x00},
{0x73,0x00},
{0x74,0x3a},
{0x75,0x35},
{0x76,0x01},
{0x77,0x02},
{0x7a,0x20},
{0x7b,0x1C},
{0x7c,0x28},
{0x7d,0x3C},
{0x7e,0x5A},
{0x7f,0x68},
{0x80,0x76},
{0x81,0x80},
{0x82,0x88},
{0x83,0x8f},
{0x84,0x96},
{0x85,0xa3},
{0x86,0xaf},
{0x87,0xc4},
{0x88,0xd7},
{0x89,0xe8},
{0x8a,0x23},
{0x8c,0x8d},
{0x90,0x7d},
{0x91,0x7b},
{0x9f,0x7a},
{0xa0,0x79},
{0xa1,0x40},
{0xa4,0x50},
{0xa5,0x68},
{0xa6,0x4a},
{0xa8,0xc1},
{0xa9,0xfa},
{0xaa,0x92},
{0xab,0x04},
{0xac,0x80},
{0xad,0x80},
{0xae,0x80},
{0xaf,0x80},
{0xb2,0xf2},
{0xb3,0x20},
{0xb4,0x20},
{0xb5,0x52},
{0xb6,0xaf},
{0xbb,0xae},
{0xb5,0x00},
{0xbc,0x7f},
{0xbd,0x7f},
{0xbe,0x7f},
{0xbf,0x7f},
{0xc0,0xaa},
{0xc1,0xc0},
{0xc2,0x01},
{0xc3,0x4e},
{0xC6,0x05},
{0xc7,0x80},
{0xc9,0xe0},
{0xca,0xe8},
{0xcb,0xf0},
{0xcc,0xd8},
{0xcd,0x93},
{0x4f,0x98},
{0x50,0x98},
{0x51,0x00},
{0x52,0x28},
{0x53,0x70},
{0x54,0x98},
{0x14,0x1a},
{0x3b,0x0c},
{0x43,0x0a},
{0x44,0xf0},
{0x45,0x46},
{0x46,0x62},
{0x47,0x2a},
{0x48,0x3c},
{0x58,0x1a},
{0x59,0x85},
{0x5a,0xa9},
{0x5b,0x64},
{0x5c,0x84},
{0x5d,0x53},
{0x5e,0x0e},
{0x69,0x0a},
{0x6c,0x04},
{0x6d,0x55},
{0x6e,0x00},
{0x6f,0x9d},
{0x62,0x00},
{0x63,0x00},
{0x64,0x02},
{0x65,0x20},
{0x66,0x01},
{0x9d,0x02},
{0x9e,0x03},
{0x29,0x15},
{0xa9,0xef},
{0x92,0x64},
{0x93,0x00},
{0xa2,0x4b},
{0xa3,0x4b},
{0x6a,0x4b},
{0x13,0xe7}
};
const unsigned char Ov9655_YCbCr8bit_TT[][2] = {
{0x12,0x80}
//{0x13,0x8f},
//{0x14,0x6a},
//{0x1e,0x20},
//{0x15,0x10},
//{0x3a,0x8c},
//{0x3e,0x0e},
//{0x42,0xd0},
//{0x55,0x08},
//{0x6b,0xda},
//{0x13,0xe7}
};
const unsigned char Ov9655_YCbCr8bit_TV[][2] = {
// OMNI Vision
{0x12,0x80},
{0x13,0x00},
{0x00,0x00},
{0x01,0x80},
{0x02,0x80},
{0x03,0x1b},
{0x0e,0x61},
{0x0f,0x42},
{0x10,0xf0},
{0x11,0x02},
{0x12,0x02},
{0x16,0x14},
{0x17,0x1d},
{0x18,0xbd},
{0x19,0x01},
{0x1a,0x81},
{0x1e,0x20},
{0x24,0x4c},
{0x25,0x46},
{0x26,0x82},
{0x27,0x08},
{0x28,0x08},
{0x2a,0x00},
{0x2b,0x00},
{0x2c,0x08},
{0x32,0xff},
{0x33,0x00},
{0x34,0x3d},
{0x35,0x00},
{0x36,0xf0},
{0x38,0x72},
{0x39,0x57},
{0x3a,0x8c},
{0x3b,0xac},
{0x3d,0x99},
{0x3e,0x0c},
{0x3f,0xc1},
{0x40,0xc0},
{0x41,0x00},
{0x42,0xc0},
{0x6b,0x8a},
{0x70,0x21},
{0x71,0x78},
{0x72,0x00},
{0x73,0x01},
{0x74,0x3a},
{0x75,0x35},
{0x76,0x01},
{0x77,0x02},
{0x7a,0x20},
{0x7b,0x1C},
{0x7c,0x28},
{0x7d,0x3C},
{0x7e,0x5A},
{0x7f,0x68},
{0x80,0x76},
{0x81,0x80},
{0x82,0x88},
{0x83,0x8f},
{0x84,0x96},
{0x85,0xa3},
{0x86,0xaf},
{0x87,0xc4},
{0x88,0xd7},
{0x89,0xe8},
{0x8a,0x23},
{0x8c,0x0d},
{0x90,0x7d},
{0x91,0x7b},
{0x9f,0x7a},
{0xa0,0x79},
{0xa1,0x40},
{0xa4,0x50},
{0xa5,0x68},
{0xa6,0x4a},
{0xa8,0xc1},
{0xa9,0xfa},
{0xaa,0x92},
{0xab,0x04},
{0xac,0x80},
{0xad,0x80},
{0xae,0x80},
{0xaf,0x80},
{0xb2,0xf2},
{0xb3,0x20},
{0xb4,0x20},
{0xb5,0x52},
{0xb6,0xaf},
{0xbb,0xae},
{0xb5,0x00},
{0xbc,0x7f},
{0xbd,0x7f},
{0xbe,0x7f},
{0xbf,0x7f},
{0xc0,0xe2},
{0xc1,0xc0},
{0xc2,0x01},
{0xc3,0x4e},
{0xC6,0x05},
{0xc7,0x80},
{0xc9,0xe0},
{0xca,0xe8},
{0xcb,0xf0},
{0xcc,0xd8},
{0xcd,0x93},
{0x4f,0x98},
{0x50,0x98},
{0x51,0x00},
{0x52,0x28},
{0x53,0x70},
{0x54,0x98},
{0x14,0x1a},
{0x3b,0x0c},
{0x43,0x0a},
{0x44,0xf0},
{0x45,0x46},
{0x46,0x62},
{0x47,0x2a},
{0x48,0x3c},
{0x58,0x1a},
{0x59,0x85},
{0x5a,0xa9},
{0x5b,0x64},
{0x5c,0x84},
{0x5d,0x53},
{0x5e,0x0e},
{0x69,0x02},
{0x6c,0x04},
{0x6d,0x55},
{0x6e,0x00},
{0x6f,0x9d},
{0x62,0x00},
{0x63,0x00},
{0x64,0x02},
{0x65,0x20},
{0x66,0x01},
{0x9d,0x02},
{0x9e,0x03},
{0x29,0x15},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -