📄 camera.c
字号:
{
{0x12, 0x80},{0x12, 0x15},{0x11,0x83},{0x0c, 0x04},{0x0d, 0xc0},
{0x3b, 0x00},{0x33, 0x02},
{0x37, 0x02},{0x38, 0x13},{0x39,0xf0},{0x6c, 0x40},{0x6d, 0x30},
{0x6e, 0x4b},{0x6f, 0x60},{0x70,0x70},{0x71, 0x70},{0x72, 0x70},
{0x73, 0x70},{0x74, 0x60},
{0x75, 0x60},{0x76, 0x50},{0x77,0x48},{0x78, 0x3a},{0x79, 0x2e},
{0x7a, 0x28},{0x7b, 0x22},{0x7c,0x04},{0x7d, 0x07},{0x7e, 0x10},
{0x7f, 0x28},{0x80, 0x36},{0x81,0x44},{0x82, 0x52},{0x83, 0x60},
{0x84, 0x6c},{0x85, 0x78},{0x86,0x8c},{0x87, 0x9e},{0x88, 0xbb},
{0x89, 0xd2},{0x8a, 0xe6},{0x0f,0x4f},{0x3c, 0x40},{0x14, 0xca},
{0x42, 0x89},{0x24, 0x78},{0x25,0x68},{0x26, 0xd4},{0x27, 0x90},
{0x2a, 0x00},{0x2b, 0x00},{0x3d,0x80},{0x41, 0x00},{0x60, 0x8d},
}
},
//////////////////////////////////////////////////////////////////////////
// Omnivision OV9640 Camera 640x480 Mode (QCIF) in BAYER Mode (Planar)
//////////////////////////////////////////////////////////////////////////
{
/* frame width */ 176,
/* frame heigth */ 144,
/* camera name */ L"Omnivision",
/* camera mode */ L"bayer_QCIF",
/* Cmos output format */ CMOS_RAW,
/* Resolution Format */ BAYER_QCIF,
/* DPS mode */ CIM_CONFIG_BAYER,
/* Bayer Mode */ CIM_CONFIG_BGGR,
/* dbdma channel */ 3,
/* Device Address */ 0x30,
/* No of Sub Register */ 54,
{
{0x12, 0x80},{0x12, 0x0D},{0x11,0x80},{0x0c, 0x04},{0x0d, 0xc0},
{0x3b, 0x00},{0x33, 0x02},
{0x37, 0x02},{0x38, 0x13},{0x39,0xf0},{0x6c, 0x40},{0x6d, 0x30},
{0x6e, 0x4b},{0x6f, 0x60},{0x70,0x70},{0x71, 0x70},{0x72, 0x70},
{0x73, 0x70},{0x74, 0x60},
{0x75, 0x60},{0x76, 0x50},{0x77,0x48},{0x78, 0x3a},{0x79, 0x2e},
{0x7a, 0x28},{0x7b, 0x22},{0x7c,0x04},{0x7d, 0x07},{0x7e, 0x10},
{0x7f, 0x28},{0x80, 0x36},{0x81,0x44},{0x82, 0x52},{0x83, 0x60},
{0x84, 0x6c},{0x85, 0x78},{0x86,0x8c},{0x87, 0x9e},{0x88, 0xbb},
{0x89, 0xd2},{0x8a, 0xe6},{0x0f,0x6f},{0x3c, 0x60},{0x14, 0xca},
{0x42, 0x89},{0x24, 0x78},{0x25,0x68},{0x26, 0xd4},{0x27, 0x90},
{0x2a, 0x00},{0x2b, 0x00},{0x3d,0x80},{0x41, 0x00},{0x60, 0x8d},
}
},
//////////////////////////////////////////////////////////////////////////
// Omnivision OV9640 Camera 1280x960 Mode (SXGA) in YCbCr Camera
// pass Thru Mode
//////////////////////////////////////////////////////////////////////////
{
/* frame width */ 1280,
/* frame heigth */ 960,
/* camera name */ L"Omnivision",
/* camera mode */ L"YCbCr_SXGA",
/* Cmos output format */ CMOS_CCIR656,
/* Resolution Format */ YCbCr_SXGA_RAW,
/* DPS mode */ CIM_CONFIG_RAW,
/* Bayer Mode */ CIM_CONFIG_BGGR,
/* dbdma channel */ 1,
/* Device Address */ 0x30,
/* No of Sub Register */ 115,
{
{0x12, 0x80},{0x11, 0x80},{0x12,0x00},{0x13, 0xA8},{0x01, 0x80},
{0x02, 0x80},{0x04, 0x40},{0x0C,0x04},{0x0D, 0xC0},{0x0E, 0x81},
{0x0f, 0x4F},{0x14, 0x4A},{0x16,0x02},{0x1B, 0x01},{0x24, 0x70},
{0x25, 0x68},{0x26, 0xD3},{0x27,0x90},{0x2A, 0x00},{0x2B, 0x00},
{0x33, 0x28},{0x37, 0x02},{0x38,0x13},{0x39, 0xF0},{0x3A, 0x00},
{0x3B, 0x01},{0x3C, 0x46},{0x3D,0x90},{0x3E, 0x02},{0x3F, 0xF2},
{0x41, 0x02},{0x42, 0xC9},{0x43,0xF0},{0x44, 0x10},{0x45, 0x6C},
{0x46, 0x6C},{0x47, 0x44},{0x48,0x44},{0x49, 0x03},{0x4F, 0x50},
{0x50, 0x43},{0x51, 0x0D},{0x52,0x19},{0x53, 0x4C},{0x54, 0x65},
{0x59, 0x49},{0x5A, 0x94},{0x5B,0x46},{0x5C, 0x84},{0x5D, 0x5C},
{0x5E, 0x08},{0x5F, 0x00},{0x60,0x14},{0x61, 0xCE},{0x62, 0x70},
{0x63, 0x00},{0x64, 0x04},{0x65,0x00},{0x66, 0x00},{0x69, 0x00},
{0x6A, 0x3E},{0x6B, 0x3F},{0x6C,0x40},{0x6D, 0x30},{0x6E, 0x4B},
{0x6F, 0x60},{0x70, 0x70},{0x71,0x70},{0x72, 0x70},{0x73, 0x70},
{0x74, 0x70},{0x75, 0x60},{0x76,0x50},{0x77, 0x48},{0x78, 0x3A},
{0x79, 0x2E},{0x7A, 0x28},{0x7B,0x22},{0x7C, 0x04},{0x7D, 0x07},
{0x7E, 0x10},{0x7F, 0x28},{0x80,0x36},{0x81, 0x44},{0x82, 0x52},
{0x83, 0x60},{0x84, 0x6C},{0x85,0x78},{0x86, 0x8C},{0x87, 0x9E},
{0x88, 0xBB},{0x89, 0xD2},{0x8A,0xE6},{0x13, 0xAF},{0x13, 0x8D},
{0x01, 0x80},{0x02, 0x80},{0x42,0xC9},{0x16, 0x02},{0x43, 0xF0},
{0x44, 0x10},{0x45, 0x20},{0x46,0x20},{0x47, 0x20},{0x48, 0x20},
{0x59, 0x17},{0x5A, 0x71},{0x5B,0x56},{0x5C, 0x74},{0x5D, 0x68},
{0x5e, 0x10},{0x5f, 0x00},{0x60,0x14},{0x61, 0xCE},{0x13, 0x8F},
}
},
//////////////////////////////////////////////////////////////////////////
// Omnivision OV9640 Camera 640x480 Mode (SXGA) in YCbCr Camera
// pass Thru Mode
//////////////////////////////////////////////////////////////////////////
{
/* frame width */ 640,
/* frame heigth */ 480,
/* camera name */ L"Omnivision",
/* camera mode */ L"YCbCr_VGA_raw",
/* Cmos output format */ CMOS_CCIR656,
/* Resolution Format */ YCbCr_VGA_RAW,
/* DPS mode */ CIM_CONFIG_RAW,
/* Bayer Mode */ CIM_CONFIG_BGGR,
/* dbdma channel */ 1,
/* Device Address */ 0x30,
/* No of Sub Register */ 94,
{
{0x12, 0x80},{0x11, 0x81},{0x12,0x40},{0x13, 0xA8},{0x01, 0x80},
{0x02, 0x80},{0x04, 0x40},{0x0C,0x04},{0x0D, 0xC0},{0x0E, 0x81},
{0x0f, 0x4F},{0x14, 0x4A},{0x16,0x02},{0x1B, 0x01},{0x24, 0x70},
{0x25, 0x68},{0x26, 0xD3},{0x27,0x90},{0x2A, 0x00},{0x2B, 0x00},
{0x33, 0x02},{0x37, 0x02},{0x38,0x13},{0x39, 0xF0},{0x3A, 0x00},
{0x3B, 0x01},{0x3C, 0x46},{0x3D,0x90},{0x3E, 0x02},{0x3F, 0xF2},
{0x41, 0x02},{0x42, 0xC9},{0x43,0xF0},{0x44, 0x10},{0x45, 0x6C},
{0x46, 0x6C},{0x47, 0x44},{0x48,0x44},{0x49, 0x03},{0x4F, 0x50},
{0x50, 0x43},{0x51, 0x0D},{0x52,0x19},{0x53, 0x4C},{0x54, 0x65},
{0x59, 0x49},{0x5A, 0x94},{0x5B,0x46},{0x5C, 0x84},{0x5D, 0x5C},
{0x5E, 0x08},{0x5F, 0x00},{0x60,0x14},{0x61, 0xCE},{0x62, 0x70},
{0x63, 0x00},{0x64, 0x04},{0x65,0x00},{0x66, 0x00},{0x69, 0x00},
{0x6A, 0x3E},{0x6B, 0x3F},{0x6C,0x40},{0x6D, 0x30},{0x6E, 0x4B},
{0x6F, 0x60},{0x70, 0x70},{0x71,0x70},{0x72, 0x70},{0x73, 0x70},
{0x74, 0x60},{0x75, 0x60},{0x76,0x50},{0x77, 0x48},{0x78, 0x3A},
{0x79, 0x2E},{0x7A, 0x28},{0x7B,0x22},{0x7C, 0x04},{0x7D, 0x07},
{0x7E, 0x10},{0x7F, 0x28},{0x80,0x36},{0x81, 0x44},{0x82, 0x52},
{0x83, 0x60},{0x84, 0x6C},{0x85,0x78},{0x86, 0x8C},{0x87, 0x9E},
{0x88, 0xBB},{0x89, 0xD2},{0x8A,0xE6},{0x13, 0xAF},
}
},
//////////////////////////////////////////////////////////////////////////
// Omnivision OV9640 Camera 352x288 Mode (CIF) in YCbCr Camera
// pass Thru Mode
//////////////////////////////////////////////////////////////////////////
{
/* frame width */ 352,
/* frame heigth */ 288,
/* camera name */ L"Omnivision",
/* camera mode */ L"YCbCr_CIF_raw",
/* Cmos output format */ CMOS_CCIR656,
/* Resolution Format */ YCbCr_CIF_RAW,
/* DPS mode */ CIM_CONFIG_RAW,
/* Bayer Mode */ CIM_CONFIG_BGGR,
/* dbdma channel */ 1,
/* Device Address */ 0x30,
/* No of Sub Register */ 94,
{
{0x12, 0x80},{0x11, 0x81},{0x12,0x20},{0x13, 0xA8},{0x01, 0x80},
{0x02, 0x80},{0x04, 0x40},{0x0C,0x04},{0x0D, 0xC0},{0x0E, 0x81},
{0x0f, 0x4F},{0x14, 0x4A},{0x16,0x02},{0x1B, 0x01},{0x24, 0x70},
{0x25, 0x68},{0x26, 0xD3},{0x27,0x90},{0x2A, 0x00},{0x2B, 0x00},
{0x33, 0x02},{0x37, 0x02},{0x38,0x13},{0x39, 0xF0},{0x3A, 0x00},
{0x3B, 0x01},{0x3C, 0x46},{0x3D,0x90},{0x3E, 0x02},{0x3F, 0xF2},
{0x41, 0x02},{0x42, 0xC9},{0x43,0xF0},{0x44, 0x10},{0x45, 0x6C},
{0x46, 0x6C},{0x47, 0x44},{0x48,0x44},{0x49, 0x03},{0x4F, 0x50},
{0x50, 0x43},{0x51, 0x0D},{0x52,0x19},{0x53, 0x4C},{0x54, 0x65},
{0x59, 0x49},{0x5A, 0x94},{0x5B,0x46},{0x5C, 0x84},{0x5D, 0x5C},
{0x5E, 0x08},{0x5F, 0x00},{0x60,0x14},{0x61, 0xCE},{0x62, 0x70},
{0x63, 0x00},{0x64, 0x04},{0x65,0x00},{0x66, 0x00},{0x69, 0x00},
{0x6A, 0x3E},{0x6B, 0x3F},{0x6C,0x40},{0x6D, 0x30},{0x6E, 0x4B},
{0x6F, 0x60},{0x70, 0x70},{0x71,0x70},{0x72, 0x70},{0x73, 0x70},
{0x74, 0x60},{0x75, 0x60},{0x76,0x50},{0x77, 0x48},{0x78, 0x3A},
{0x79, 0x2E},{0x7A, 0x28},{0x7B,0x22},{0x7C, 0x04},{0x7D, 0x07},
{0x7E, 0x10},{0x7F, 0x28},{0x80,0x36},{0x81, 0x44},{0x82, 0x52},
{0x83, 0x60},{0x84, 0x6C},{0x85,0x78},{0x86, 0x8C},{0x87, 0x9E},
{0x88, 0xBB},{0x89, 0xD2},{0x8A,0xE6},{0x13, 0xAF},
}
},
//////////////////////////////////////////////////////////////////////////
// Omnivision OV9640 Camera 352x288 Mode (CIF) in YCbCr Camera
// pass Thru Mode
//////////////////////////////////////////////////////////////////////////
{
/* frame width */ 320,
/* frame heigth */ 240,
/* camera name */ L"Omnivision",
/* camera mode */ L"YCbCr_QVGA_raw",
/* Cmos output format */ CMOS_CCIR656,
/* Resolution Format */ YCbCr_QVGA_RAW,
/* DPS mode */ CIM_CONFIG_RAW,
/* Bayer Mode */ CIM_CONFIG_BGGR,
/* dbdma channel */ 1,
/* Device Address */ 0x30,
/* No of Sub Register */ 94,
{
{0x12, 0x80},{0x11, 0x81},{0x12,0x10},{0x13, 0xA8},{0x01, 0x80},
{0x02, 0x80},{0x04, 0x40},{0x0C,0x04},{0x0D, 0xC0},{0x0E, 0x81},
{0x0f, 0x4F},{0x14, 0x4A},{0x16,0x02},{0x1B, 0x01},{0x24, 0x70},
{0x25, 0x68},{0x26, 0xD3},{0x27,0x90},{0x2A, 0x00},{0x2B, 0x00},
{0x33, 0x02},{0x37, 0x02},{0x38,0x13},{0x39, 0xF0},{0x3A, 0x00},
{0x3B, 0x01},{0x3C, 0x46},{0x3D,0x90},{0x3E, 0x02},{0x3F, 0xF2},
{0x41, 0x02},{0x42, 0xC9},{0x43,0xF0},{0x44, 0x10},{0x45, 0x6C},
{0x46, 0x6C},{0x47, 0x44},{0x48,0x44},{0x49, 0x03},{0x4F, 0x50},
{0x50, 0x43},{0x51, 0x0D},{0x52,0x19},{0x53, 0x4C},{0x54, 0x65},
{0x59, 0x49},{0x5A, 0x94},{0x5B,0x46},{0x5C, 0x84},{0x5D, 0x5C},
{0x5E, 0x08},{0x5F, 0x00},{0x60,0x14},{0x61, 0xCE},{0x62, 0x70},
{0x63, 0x00},{0x64, 0x04},{0x65,0x00},{0x66, 0x00},{0x69, 0x00},
{0x6A, 0x3E},{0x6B, 0x3F},{0x6C,0x40},{0x6D, 0x30},{0x6E, 0x4B},
{0x6F, 0x60},{0x70, 0x70},{0x71,0x70},{0x72, 0x70},{0x73, 0x70},
{0x74, 0x60},{0x75, 0x60},{0x76,0x50},{0x77, 0x48},{0x78, 0x3A},
{0x79, 0x2E},{0x7A, 0x28},{0x7B,0x22},{0x7C, 0x04},{0x7D, 0x07},
{0x7E, 0x10},{0x7F, 0x28},{0x80,0x36},{0x81, 0x44},{0x82, 0x52},
{0x83, 0x60},{0x84, 0x6C},{0x85,0x78},{0x86, 0x8C},{0x87, 0x9E},
{0x88, 0xBB},{0x89, 0xD2},{0x8A,0xE6},{0x13, 0xAF},
}
},
//////////////////////////////////////////////////////////////////////////
// Omnivision OV9640 Camera 352x288 Mode (CIF) in YCbCr Camera
// pass Thru Mode
//////////////////////////////////////////////////////////////////////////
{
/* frame width */ 176,
/* frame heigth */ 144,
/* camera name */ L"Omnivision",
/* camera mode */ L"YCbCr_QCIF_raw",
/* Cmos output format */ CMOS_CCIR656,
/* Resolution Format */ YCbCr_QCIF_RAW,
/* DPS mode */ CIM_CONFIG_RAW,
/* Bayer Mode */ CIM_CONFIG_BGGR,
/* dbdma channel */ 1,
/* Device Address */ 0x30,
/* No of Sub Register */ 94,
{
{0x12, 0x80},{0x11, 0x81},{0x12,0x08},{0x13, 0xA8},{0x01, 0x80},
{0x02, 0x80},{0x04, 0x40},{0x0C,0x04},{0x0D, 0xC0},{0x0E, 0x81},
{0x0f, 0x4F},{0x14, 0x4A},{0x16,0x02},{0x1B, 0x01},{0x24, 0x70},
{0x25, 0x68},{0x26, 0xD3},{0x27,0x90},{0x2A, 0x00},{0x2B, 0x00},
{0x33, 0x02},{0x37, 0x02},{0x38,0x13},{0x39, 0xF0},{0x3A, 0x00},
{0x3B, 0x01},{0x3C, 0x46},{0x3D,0x90},{0x3E, 0x02},{0x3F, 0xF2},
{0x41, 0x02},{0x42, 0xC9},{0x43,0xF0},{0x44, 0x10},{0x45, 0x6C},
{0x46, 0x6C},{0x47, 0x44},{0x48,0x44},{0x49, 0x03},{0x4F, 0x50},
{0x50, 0x43},{0x51, 0x0D},{0x52,0x19},{0x53, 0x4C},{0x54, 0x65},
{0x59, 0x49},{0x5A, 0x94},{0x5B,0x46},{0x5C, 0x84},{0x5D, 0x5C},
{0x5E, 0x08},{0x5F, 0x00},{0x60,0x14},{0x61, 0xCE},{0x62, 0x70},
{0x63, 0x00},{0x64, 0x04},{0x65,0x00},{0x66, 0x00},{0x69, 0x00},
{0x6A, 0x3E},{0x6B, 0x3F},{0x6C,0x40},{0x6D, 0x30},{0x6E, 0x4B},
{0x6F, 0x60},{0x70, 0x70},{0x71,0x70},{0x72, 0x70},{0x73, 0x70},
{0x74, 0x60},{0x75, 0x60},{0x76,0x50},{0x77, 0x48},{0x78, 0x3A},
{0x79, 0x2E},{0x7A, 0x28},{0x7B,0x22},{0x7C, 0x04},{0x7D, 0x07},
{0x7E, 0x10},{0x7F, 0x28},{0x80,0x36},{0x81, 0x44},{0x82, 0x52},
{0x83, 0x60},{0x84, 0x6C},{0x85,0x78},{0x86, 0x8C},{0x87, 0x9E},
{0x88, 0xBB},{0x89, 0xD2},{0x8A,0xE6},{0x13, 0xAF},
}
},
//////////////////////////////////////////////////////////////////////////
// Omnivision OV9640 Camera 640x480 Mode (SXGA) in YCbCr Planar Mode
//////////////////////////////////////////////////////////////////////////
{
/* frame width */ 640,
/* frame heigth */ 480,
/* camera name */ L"Omnivision",
/* camera mode */ L"YCbCr_VGA",
/* Cmos output format */ CMOS_CCIR656,
/* Resolution Format */ YCbCr_VGA,
/* DPS mode */ CIM_CONFIG_656,
/* Bayer Mode */ CIM_CONFIG_BGGR,
/* dbdma channel */ 3,
/* Device Address */ 0x30,
/* No of Sub Register */ 94,
{
{0x12, 0x80},{0x11, 0x81},{0x12,0x40},{0x13, 0xA8},{0x01, 0x80},
{0x02, 0x80},{0x04, 0x40},{0x0C,0x04},{0x0D, 0xC0},{0x0E, 0x81},
{0x0f, 0x4F},{0x14, 0x4A},{0x16,0x02},{0x1B, 0x01},{0x24, 0x70},
{0x25, 0x68},{0x26, 0xD3},{0x27,0x90},{0x2A, 0x00},{0x2B, 0x00},
{0x33, 0x02},{0x37, 0x02},{0x38,0x13},{0x39, 0xF0},{0x3A, 0x00},
{0x3B, 0x01},{0x3C, 0x46},{0x3D,0x90},{0x3E, 0x02},{0x3F, 0xF2},
{0x41, 0x02},{0x42, 0xC9},{0x43,0xF0},{0x44, 0x10},{0x45, 0x6C},
{0x46, 0x6C},{0x47, 0x44},{0x48,0x44},{0x49, 0x03},{0x4F, 0x50},
{0x50, 0x43},{0x51, 0x0D},{0x52,0x19},{0x53, 0x4C},{0x54, 0x65},
{0x59, 0x49},{0x5A, 0x94},{0x5B,0x46},{0x5C, 0x84},{0x5D, 0x5C},
{0x5E, 0x08},{0x5F, 0x00},{0x60,0x14},{0x61, 0xCE},{0x62, 0x70},
{0x63, 0x00},{0x64, 0x04},{0x65,0x00},{0x66, 0x00},{0x69, 0x00},
{0x6A, 0x3D},{0x6B, 0x3F},{0x6C,0x40},{0x6D, 0x30},{0x6E, 0x4B},
{0x6F, 0x60},{0x70, 0x70},{0x71,0x70},{0x72, 0x70},{0x73, 0x70},
{0x74, 0x60},{0x75, 0x60},{0x76,0x50},{0x77, 0x48},{0x78, 0x3A},
{0x79, 0x2E},{0x7A, 0x28},{0x7B,0x22},{0x7C, 0x04},{0x7D, 0x07},
{0x7E, 0x10},{0x7F, 0x28},{0x80,0x36},{0x81, 0x44},{0x82, 0x52},
{0x83, 0x60},{0x84, 0x6C},{0x85,0x78},{0x86, 0x8C},{0x87, 0x9E},
{0x88, 0xBB},{0x89, 0xD2},{0x8A,0xE6},{0x13, 0xAF},
}
},
};
#define NUM_CAMERA_MODES (sizeof(CameraModes)/sizeof(CAMERA))
/******************************************************************************
Capture Image
******************************************************************************/
static BOOL Capture_Image(void)
{
pCim->capture = 0; // demand that any in-progress captures terminate
while (pCim->stat & (CIM_STATUS_SC | CIM_STATUS_VC)) {
DEBUGMSG(ZONE_TRACE, (L"CAM Capture_image waiting for last frame to finish...\r\n"));
Sleep(10);
}
pCim->capture = CIM_CAPTURE_CLR; // clear the data path
pCim->capture = CIM_CAPTURE_SCE; // trigger a snapshot
return TRUE;
}
/******************************************************************************
Power Down Camera
******************************************************************************/
static void Camera_pwr_down(DEVICE_CONTEXT* p)
{
if ( ! bInPowerHandler )
DEBUGMSG(ZONE_POWER, (TEXT("CAM: Camera_pwr_down\r\n")));
pBcsr->specific |= BCSR_SPECIFIC_CAMPWRDOWN;
p->bPowerIsOn = FALSE;
}
/******************************************************************************
Power Up Camera
*******************************************************************************/
static void Camera_pwr_up(DEVICE_CONTEXT* p)
{
if ( ! bInPowerHandler )
DEBUGMSG(ZONE_POWER, (TEXT("CAM: Camera_pwr_up\r\n")));
pBcsr->specific &= ~BCSR_SPECIFIC_CAMPWRDOWN;
p->bPowerIsOn = TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -