SmartWheels self-driving race car. Designed for NXP Cup. Uses FRDM-KL25Z, area-scan camera, and simple image processing to detect and navigate any NXP spec track.

Dependencies:   TSI USBDevice mbed-dev

Fork of SmartWheels by haofan Zheng

Committer:
hazheng
Date:
Thu Mar 02 04:22:56 2017 +0000
Revision:
30:ff7f83ad6369
Parent:
29:f87d8790f57d
Child:
32:5badeff825dc
Added OV2640 programs. Added CamRegBuf, which is a more general version of OV7725RegBuf.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hazheng 29:f87d8790f57d 1 #pragma once
hazheng 29:f87d8790f57d 2 #ifndef OV2640_REG_PROG_H
hazheng 29:f87d8790f57d 3 #define OV2640_REG_PROG_H
hazheng 29:f87d8790f57d 4
hazheng 30:ff7f83ad6369 5 #include "CamRegDefinitions.h"
hazheng 29:f87d8790f57d 6
hazheng 29:f87d8790f57d 7 #define OV2640_WRITE 0x60
hazheng 29:f87d8790f57d 8 #define OV2640_READ 0x61
hazheng 29:f87d8790f57d 9
hazheng 29:f87d8790f57d 10 #define OV2640_PID_VALUE 0x26
hazheng 29:f87d8790f57d 11 #define OV2640_VER_VALUE 0x42
hazheng 29:f87d8790f57d 12
hazheng 30:ff7f83ad6369 13 #define PROGMEM //May need to remove this later.
hazheng 30:ff7f83ad6369 14
hazheng 30:ff7f83ad6369 15 namespace OV2640Prog
hazheng 30:ff7f83ad6369 16 {
hazheng 30:ff7f83ad6369 17
hazheng 30:ff7f83ad6369 18 const struct sensor_reg QVGA[] PROGMEM =
hazheng 30:ff7f83ad6369 19 {
hazheng 30:ff7f83ad6369 20 {0xff, 0x0},
hazheng 30:ff7f83ad6369 21 {0x2c, 0xff},
hazheng 30:ff7f83ad6369 22 {0x2e, 0xdf},
hazheng 30:ff7f83ad6369 23 {0xff, 0x1},
hazheng 30:ff7f83ad6369 24 {0x3c, 0x32},
hazheng 30:ff7f83ad6369 25 {0x11, 0x0},
hazheng 30:ff7f83ad6369 26 {0x9, 0x2},
hazheng 30:ff7f83ad6369 27 {0x4, 0xa8},
hazheng 30:ff7f83ad6369 28 {0x13, 0xe5},
hazheng 30:ff7f83ad6369 29 {0x14, 0x48},
hazheng 30:ff7f83ad6369 30 {0x2c, 0xc},
hazheng 30:ff7f83ad6369 31 {0x33, 0x78},
hazheng 30:ff7f83ad6369 32 {0x3a, 0x33},
hazheng 30:ff7f83ad6369 33 {0x3b, 0xfb},
hazheng 30:ff7f83ad6369 34 {0x3e, 0x0},
hazheng 30:ff7f83ad6369 35 {0x43, 0x11},
hazheng 30:ff7f83ad6369 36 {0x16, 0x10},
hazheng 30:ff7f83ad6369 37 {0x39, 0x2},
hazheng 30:ff7f83ad6369 38 {0x35, 0x88},
hazheng 30:ff7f83ad6369 39
hazheng 30:ff7f83ad6369 40 {0x22, 0xa},
hazheng 30:ff7f83ad6369 41 {0x37, 0x40},
hazheng 30:ff7f83ad6369 42 {0x23, 0x0},
hazheng 30:ff7f83ad6369 43 {0x34, 0xa0},
hazheng 30:ff7f83ad6369 44 {0x6, 0x2},
hazheng 30:ff7f83ad6369 45 {0x6, 0x88},
hazheng 30:ff7f83ad6369 46 {0x7, 0xc0},
hazheng 30:ff7f83ad6369 47 {0xd, 0xb7},
hazheng 30:ff7f83ad6369 48 {0xe, 0x1},
hazheng 30:ff7f83ad6369 49 {0x4c, 0x0},
hazheng 30:ff7f83ad6369 50 {0x4a, 0x81},
hazheng 30:ff7f83ad6369 51 {0x21, 0x99},
hazheng 30:ff7f83ad6369 52 {0x24, 0x40},
hazheng 30:ff7f83ad6369 53 {0x25, 0x38},
hazheng 30:ff7f83ad6369 54 {0x26, 0x82},
hazheng 30:ff7f83ad6369 55 {0x5c, 0x0},
hazheng 30:ff7f83ad6369 56 {0x63, 0x0},
hazheng 30:ff7f83ad6369 57 {0x46, 0x22},
hazheng 30:ff7f83ad6369 58 {0xc, 0x3a},
hazheng 30:ff7f83ad6369 59 {0x5d, 0x55},
hazheng 30:ff7f83ad6369 60 {0x5e, 0x7d},
hazheng 30:ff7f83ad6369 61 {0x5f, 0x7d},
hazheng 30:ff7f83ad6369 62 {0x60, 0x55},
hazheng 30:ff7f83ad6369 63 {0x61, 0x70},
hazheng 30:ff7f83ad6369 64 {0x62, 0x80},
hazheng 30:ff7f83ad6369 65 {0x7c, 0x5},
hazheng 30:ff7f83ad6369 66 {0x20, 0x80},
hazheng 30:ff7f83ad6369 67 {0x28, 0x30},
hazheng 30:ff7f83ad6369 68 {0x6c, 0x0},
hazheng 30:ff7f83ad6369 69 {0x6d, 0x80},
hazheng 30:ff7f83ad6369 70 {0x6e, 0x0},
hazheng 30:ff7f83ad6369 71 {0x70, 0x2},
hazheng 30:ff7f83ad6369 72 {0x71, 0x94},
hazheng 30:ff7f83ad6369 73 {0x73, 0xc1},
hazheng 30:ff7f83ad6369 74 {0x3d, 0x34},
hazheng 30:ff7f83ad6369 75 {0x12, 0x4},
hazheng 30:ff7f83ad6369 76 {0x5a, 0x57},
hazheng 30:ff7f83ad6369 77 {0x4f, 0xbb},
hazheng 30:ff7f83ad6369 78 {0x50, 0x9c},
hazheng 30:ff7f83ad6369 79 {0xff, 0x0},
hazheng 30:ff7f83ad6369 80 {0xe5, 0x7f},
hazheng 30:ff7f83ad6369 81 {0xf9, 0xc0},
hazheng 30:ff7f83ad6369 82 {0x41, 0x24},
hazheng 30:ff7f83ad6369 83 {0xe0, 0x14},
hazheng 30:ff7f83ad6369 84 {0x76, 0xff},
hazheng 30:ff7f83ad6369 85 {0x33, 0xa0},
hazheng 30:ff7f83ad6369 86 {0x42, 0x20},
hazheng 30:ff7f83ad6369 87 {0x43, 0x18},
hazheng 30:ff7f83ad6369 88 {0x4c, 0x0},
hazheng 30:ff7f83ad6369 89 {0x87, 0xd0},
hazheng 30:ff7f83ad6369 90 {0x88, 0x3f},
hazheng 30:ff7f83ad6369 91 {0xd7, 0x3},
hazheng 30:ff7f83ad6369 92 {0xd9, 0x10},
hazheng 30:ff7f83ad6369 93 {0xd3, 0x82},
hazheng 30:ff7f83ad6369 94 {0xc8, 0x8},
hazheng 30:ff7f83ad6369 95 {0xc9, 0x80},
hazheng 30:ff7f83ad6369 96 {0x7c, 0x0},
hazheng 30:ff7f83ad6369 97 {0x7d, 0x0},
hazheng 30:ff7f83ad6369 98 {0x7c, 0x3},
hazheng 30:ff7f83ad6369 99 {0x7d, 0x48},
hazheng 30:ff7f83ad6369 100 {0x7d, 0x48},
hazheng 30:ff7f83ad6369 101 {0x7c, 0x8},
hazheng 30:ff7f83ad6369 102 {0x7d, 0x20},
hazheng 30:ff7f83ad6369 103 {0x7d, 0x10},
hazheng 30:ff7f83ad6369 104 {0x7d, 0xe},
hazheng 30:ff7f83ad6369 105 {0x90, 0x0},
hazheng 30:ff7f83ad6369 106 {0x91, 0xe},
hazheng 30:ff7f83ad6369 107 {0x91, 0x1a},
hazheng 30:ff7f83ad6369 108 {0x91, 0x31},
hazheng 30:ff7f83ad6369 109 {0x91, 0x5a},
hazheng 30:ff7f83ad6369 110 {0x91, 0x69},
hazheng 30:ff7f83ad6369 111 {0x91, 0x75},
hazheng 30:ff7f83ad6369 112 {0x91, 0x7e},
hazheng 30:ff7f83ad6369 113 {0x91, 0x88},
hazheng 30:ff7f83ad6369 114 {0x91, 0x8f},
hazheng 30:ff7f83ad6369 115 {0x91, 0x96},
hazheng 30:ff7f83ad6369 116 {0x91, 0xa3},
hazheng 30:ff7f83ad6369 117 {0x91, 0xaf},
hazheng 30:ff7f83ad6369 118 {0x91, 0xc4},
hazheng 30:ff7f83ad6369 119 {0x91, 0xd7},
hazheng 30:ff7f83ad6369 120 {0x91, 0xe8},
hazheng 30:ff7f83ad6369 121 {0x91, 0x20},
hazheng 30:ff7f83ad6369 122 {0x92, 0x0},
hazheng 30:ff7f83ad6369 123
hazheng 30:ff7f83ad6369 124 {0x93, 0x6},
hazheng 30:ff7f83ad6369 125 {0x93, 0xe3},
hazheng 30:ff7f83ad6369 126 {0x93, 0x3},
hazheng 30:ff7f83ad6369 127 {0x93, 0x3},
hazheng 30:ff7f83ad6369 128 {0x93, 0x0},
hazheng 30:ff7f83ad6369 129 {0x93, 0x2},
hazheng 30:ff7f83ad6369 130 {0x93, 0x0},
hazheng 30:ff7f83ad6369 131 {0x93, 0x0},
hazheng 30:ff7f83ad6369 132 {0x93, 0x0},
hazheng 30:ff7f83ad6369 133 {0x93, 0x0},
hazheng 30:ff7f83ad6369 134 {0x93, 0x0},
hazheng 30:ff7f83ad6369 135 {0x93, 0x0},
hazheng 30:ff7f83ad6369 136 {0x93, 0x0},
hazheng 30:ff7f83ad6369 137 {0x96, 0x0},
hazheng 30:ff7f83ad6369 138 {0x97, 0x8},
hazheng 30:ff7f83ad6369 139 {0x97, 0x19},
hazheng 30:ff7f83ad6369 140 {0x97, 0x2},
hazheng 30:ff7f83ad6369 141 {0x97, 0xc},
hazheng 30:ff7f83ad6369 142 {0x97, 0x24},
hazheng 30:ff7f83ad6369 143 {0x97, 0x30},
hazheng 30:ff7f83ad6369 144 {0x97, 0x28},
hazheng 30:ff7f83ad6369 145 {0x97, 0x26},
hazheng 30:ff7f83ad6369 146 {0x97, 0x2},
hazheng 30:ff7f83ad6369 147 {0x97, 0x98},
hazheng 30:ff7f83ad6369 148 {0x97, 0x80},
hazheng 30:ff7f83ad6369 149 {0x97, 0x0},
hazheng 30:ff7f83ad6369 150 {0x97, 0x0},
hazheng 30:ff7f83ad6369 151 {0xa4, 0x0},
hazheng 30:ff7f83ad6369 152 {0xa8, 0x0},
hazheng 30:ff7f83ad6369 153 {0xc5, 0x11},
hazheng 30:ff7f83ad6369 154 {0xc6, 0x51},
hazheng 30:ff7f83ad6369 155 {0xbf, 0x80},
hazheng 30:ff7f83ad6369 156 {0xc7, 0x10},
hazheng 30:ff7f83ad6369 157 {0xb6, 0x66},
hazheng 30:ff7f83ad6369 158 {0xb8, 0xa5},
hazheng 30:ff7f83ad6369 159 {0xb7, 0x64},
hazheng 30:ff7f83ad6369 160 {0xb9, 0x7c},
hazheng 30:ff7f83ad6369 161 {0xb3, 0xaf},
hazheng 30:ff7f83ad6369 162 {0xb4, 0x97},
hazheng 30:ff7f83ad6369 163 {0xb5, 0xff},
hazheng 30:ff7f83ad6369 164 {0xb0, 0xc5},
hazheng 30:ff7f83ad6369 165 {0xb1, 0x94},
hazheng 30:ff7f83ad6369 166 {0xb2, 0xf},
hazheng 30:ff7f83ad6369 167 {0xc4, 0x5c},
hazheng 30:ff7f83ad6369 168 {0xa6, 0x0},
hazheng 30:ff7f83ad6369 169 {0xa7, 0x20},
hazheng 30:ff7f83ad6369 170 {0xa7, 0xd8},
hazheng 30:ff7f83ad6369 171 {0xa7, 0x1b},
hazheng 30:ff7f83ad6369 172 {0xa7, 0x31},
hazheng 30:ff7f83ad6369 173 {0xa7, 0x0},
hazheng 30:ff7f83ad6369 174 {0xa7, 0x18},
hazheng 30:ff7f83ad6369 175 {0xa7, 0x20},
hazheng 30:ff7f83ad6369 176 {0xa7, 0xd8},
hazheng 30:ff7f83ad6369 177 {0xa7, 0x19},
hazheng 30:ff7f83ad6369 178 {0xa7, 0x31},
hazheng 30:ff7f83ad6369 179 {0xa7, 0x0},
hazheng 30:ff7f83ad6369 180 {0xa7, 0x18},
hazheng 30:ff7f83ad6369 181 {0xa7, 0x20},
hazheng 30:ff7f83ad6369 182 {0xa7, 0xd8},
hazheng 30:ff7f83ad6369 183 {0xa7, 0x19},
hazheng 30:ff7f83ad6369 184 {0xa7, 0x31},
hazheng 30:ff7f83ad6369 185 {0xa7, 0x0},
hazheng 30:ff7f83ad6369 186 {0xa7, 0x18},
hazheng 30:ff7f83ad6369 187 {0x7f, 0x0},
hazheng 30:ff7f83ad6369 188 {0xe5, 0x1f},
hazheng 30:ff7f83ad6369 189 {0xe1, 0x77},
hazheng 30:ff7f83ad6369 190 {0xdd, 0x7f},
hazheng 30:ff7f83ad6369 191 {0xc2, 0xe},
hazheng 30:ff7f83ad6369 192
hazheng 30:ff7f83ad6369 193 {0xff, 0x0},
hazheng 30:ff7f83ad6369 194 {0xe0, 0x4},
hazheng 30:ff7f83ad6369 195 {0xc0, 0xc8},
hazheng 30:ff7f83ad6369 196 {0xc1, 0x96},
hazheng 30:ff7f83ad6369 197 {0x86, 0x3d},
hazheng 30:ff7f83ad6369 198 {0x51, 0x90},
hazheng 30:ff7f83ad6369 199 {0x52, 0x2c},
hazheng 30:ff7f83ad6369 200 {0x53, 0x0},
hazheng 30:ff7f83ad6369 201 {0x54, 0x0},
hazheng 30:ff7f83ad6369 202 {0x55, 0x88},
hazheng 30:ff7f83ad6369 203 {0x57, 0x0},
hazheng 30:ff7f83ad6369 204
hazheng 30:ff7f83ad6369 205 {0x50, 0x92},
hazheng 30:ff7f83ad6369 206 {0x5a, 0x50},
hazheng 30:ff7f83ad6369 207 {0x5b, 0x3c},
hazheng 30:ff7f83ad6369 208 {0x5c, 0x0},
hazheng 30:ff7f83ad6369 209 {0xd3, 0x4},
hazheng 30:ff7f83ad6369 210 {0xe0, 0x0},
hazheng 30:ff7f83ad6369 211
hazheng 30:ff7f83ad6369 212 {0xff, 0x0},
hazheng 30:ff7f83ad6369 213 {0x5, 0x0},
hazheng 30:ff7f83ad6369 214
hazheng 30:ff7f83ad6369 215 {0xda, 0x8},
hazheng 30:ff7f83ad6369 216 {0xd7, 0x3},
hazheng 30:ff7f83ad6369 217 {0xe0, 0x0},
hazheng 30:ff7f83ad6369 218
hazheng 30:ff7f83ad6369 219 {0x5, 0x0},
hazheng 30:ff7f83ad6369 220
hazheng 30:ff7f83ad6369 221
hazheng 30:ff7f83ad6369 222 {0xff,0xff},
hazheng 30:ff7f83ad6369 223 };
hazheng 30:ff7f83ad6369 224
hazheng 30:ff7f83ad6369 225 const struct sensor_reg JPEG_INIT[] PROGMEM =
hazheng 30:ff7f83ad6369 226 {
hazheng 30:ff7f83ad6369 227 { 0xff, 0x00 },
hazheng 30:ff7f83ad6369 228 { 0x2c, 0xff },
hazheng 30:ff7f83ad6369 229 { 0x2e, 0xdf },
hazheng 30:ff7f83ad6369 230 { 0xff, 0x01 },
hazheng 30:ff7f83ad6369 231 { 0x3c, 0x32 },
hazheng 30:ff7f83ad6369 232 { 0x11, 0x00 },
hazheng 30:ff7f83ad6369 233 { 0x09, 0x02 },
hazheng 30:ff7f83ad6369 234 { 0x04, 0x28 },
hazheng 30:ff7f83ad6369 235 { 0x13, 0xe5 },
hazheng 30:ff7f83ad6369 236 { 0x14, 0x48 },
hazheng 30:ff7f83ad6369 237 { 0x2c, 0x0c },
hazheng 30:ff7f83ad6369 238 { 0x33, 0x78 },
hazheng 30:ff7f83ad6369 239 { 0x3a, 0x33 },
hazheng 30:ff7f83ad6369 240 { 0x3b, 0xfB },
hazheng 30:ff7f83ad6369 241 { 0x3e, 0x00 },
hazheng 30:ff7f83ad6369 242 { 0x43, 0x11 },
hazheng 30:ff7f83ad6369 243 { 0x16, 0x10 },
hazheng 30:ff7f83ad6369 244 { 0x39, 0x92 },
hazheng 30:ff7f83ad6369 245 { 0x35, 0xda },
hazheng 30:ff7f83ad6369 246 { 0x22, 0x1a },
hazheng 30:ff7f83ad6369 247 { 0x37, 0xc3 },
hazheng 30:ff7f83ad6369 248 { 0x23, 0x00 },
hazheng 30:ff7f83ad6369 249 { 0x34, 0xc0 },
hazheng 30:ff7f83ad6369 250 { 0x36, 0x1a },
hazheng 30:ff7f83ad6369 251 { 0x06, 0x88 },
hazheng 30:ff7f83ad6369 252 { 0x07, 0xc0 },
hazheng 30:ff7f83ad6369 253 { 0x0d, 0x87 },
hazheng 30:ff7f83ad6369 254 { 0x0e, 0x41 },
hazheng 30:ff7f83ad6369 255 { 0x4c, 0x00 },
hazheng 30:ff7f83ad6369 256 { 0x48, 0x00 },
hazheng 30:ff7f83ad6369 257 { 0x5B, 0x00 },
hazheng 30:ff7f83ad6369 258 { 0x42, 0x03 },
hazheng 30:ff7f83ad6369 259 { 0x4a, 0x81 },
hazheng 30:ff7f83ad6369 260 { 0x21, 0x99 },
hazheng 30:ff7f83ad6369 261 { 0x24, 0x40 },
hazheng 30:ff7f83ad6369 262 { 0x25, 0x38 },
hazheng 30:ff7f83ad6369 263 { 0x26, 0x82 },
hazheng 30:ff7f83ad6369 264 { 0x5c, 0x00 },
hazheng 30:ff7f83ad6369 265 { 0x63, 0x00 },
hazheng 30:ff7f83ad6369 266 { 0x61, 0x70 },
hazheng 30:ff7f83ad6369 267 { 0x62, 0x80 },
hazheng 30:ff7f83ad6369 268 { 0x7c, 0x05 },
hazheng 30:ff7f83ad6369 269 { 0x20, 0x80 },
hazheng 30:ff7f83ad6369 270 { 0x28, 0x30 },
hazheng 30:ff7f83ad6369 271 { 0x6c, 0x00 },
hazheng 30:ff7f83ad6369 272 { 0x6d, 0x80 },
hazheng 30:ff7f83ad6369 273 { 0x6e, 0x00 },
hazheng 30:ff7f83ad6369 274 { 0x70, 0x02 },
hazheng 30:ff7f83ad6369 275 { 0x71, 0x94 },
hazheng 30:ff7f83ad6369 276 { 0x73, 0xc1 },
hazheng 30:ff7f83ad6369 277 { 0x12, 0x40 },
hazheng 30:ff7f83ad6369 278 { 0x17, 0x11 },
hazheng 30:ff7f83ad6369 279 { 0x18, 0x43 },
hazheng 30:ff7f83ad6369 280 { 0x19, 0x00 },
hazheng 30:ff7f83ad6369 281 { 0x1a, 0x4b },
hazheng 30:ff7f83ad6369 282 { 0x32, 0x09 },
hazheng 30:ff7f83ad6369 283 { 0x37, 0xc0 },
hazheng 30:ff7f83ad6369 284 { 0x4f, 0x60 },
hazheng 30:ff7f83ad6369 285 { 0x50, 0xa8 },
hazheng 30:ff7f83ad6369 286 { 0x6d, 0x00 },
hazheng 30:ff7f83ad6369 287 { 0x3d, 0x38 },
hazheng 30:ff7f83ad6369 288 { 0x46, 0x3f },
hazheng 30:ff7f83ad6369 289 { 0x4f, 0x60 },
hazheng 30:ff7f83ad6369 290 { 0x0c, 0x3c },
hazheng 30:ff7f83ad6369 291 { 0xff, 0x00 },
hazheng 30:ff7f83ad6369 292 { 0xe5, 0x7f },
hazheng 30:ff7f83ad6369 293 { 0xf9, 0xc0 },
hazheng 30:ff7f83ad6369 294 { 0x41, 0x24 },
hazheng 30:ff7f83ad6369 295 { 0xe0, 0x14 },
hazheng 30:ff7f83ad6369 296 { 0x76, 0xff },
hazheng 30:ff7f83ad6369 297 { 0x33, 0xa0 },
hazheng 30:ff7f83ad6369 298 { 0x42, 0x20 },
hazheng 30:ff7f83ad6369 299 { 0x43, 0x18 },
hazheng 30:ff7f83ad6369 300 { 0x4c, 0x00 },
hazheng 30:ff7f83ad6369 301 { 0x87, 0xd5 },
hazheng 30:ff7f83ad6369 302 { 0x88, 0x3f },
hazheng 30:ff7f83ad6369 303 { 0xd7, 0x03 },
hazheng 30:ff7f83ad6369 304 { 0xd9, 0x10 },
hazheng 30:ff7f83ad6369 305 { 0xd3, 0x82 },
hazheng 30:ff7f83ad6369 306 { 0xc8, 0x08 },
hazheng 30:ff7f83ad6369 307 { 0xc9, 0x80 },
hazheng 30:ff7f83ad6369 308 { 0x7c, 0x00 },
hazheng 30:ff7f83ad6369 309 { 0x7d, 0x00 },
hazheng 30:ff7f83ad6369 310 { 0x7c, 0x03 },
hazheng 30:ff7f83ad6369 311 { 0x7d, 0x48 },
hazheng 30:ff7f83ad6369 312 { 0x7d, 0x48 },
hazheng 30:ff7f83ad6369 313 { 0x7c, 0x08 },
hazheng 30:ff7f83ad6369 314 { 0x7d, 0x20 },
hazheng 30:ff7f83ad6369 315 { 0x7d, 0x10 },
hazheng 30:ff7f83ad6369 316 { 0x7d, 0x0e },
hazheng 30:ff7f83ad6369 317 { 0x90, 0x00 },
hazheng 30:ff7f83ad6369 318 { 0x91, 0x0e },
hazheng 30:ff7f83ad6369 319 { 0x91, 0x1a },
hazheng 30:ff7f83ad6369 320 { 0x91, 0x31 },
hazheng 30:ff7f83ad6369 321 { 0x91, 0x5a },
hazheng 30:ff7f83ad6369 322 { 0x91, 0x69 },
hazheng 30:ff7f83ad6369 323 { 0x91, 0x75 },
hazheng 30:ff7f83ad6369 324 { 0x91, 0x7e },
hazheng 30:ff7f83ad6369 325 { 0x91, 0x88 },
hazheng 30:ff7f83ad6369 326 { 0x91, 0x8f },
hazheng 30:ff7f83ad6369 327 { 0x91, 0x96 },
hazheng 30:ff7f83ad6369 328 { 0x91, 0xa3 },
hazheng 30:ff7f83ad6369 329 { 0x91, 0xaf },
hazheng 30:ff7f83ad6369 330 { 0x91, 0xc4 },
hazheng 30:ff7f83ad6369 331 { 0x91, 0xd7 },
hazheng 30:ff7f83ad6369 332 { 0x91, 0xe8 },
hazheng 30:ff7f83ad6369 333 { 0x91, 0x20 },
hazheng 30:ff7f83ad6369 334 { 0x92, 0x00 },
hazheng 30:ff7f83ad6369 335 { 0x93, 0x06 },
hazheng 30:ff7f83ad6369 336 { 0x93, 0xe3 },
hazheng 30:ff7f83ad6369 337 { 0x93, 0x05 },
hazheng 30:ff7f83ad6369 338 { 0x93, 0x05 },
hazheng 30:ff7f83ad6369 339 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 340 { 0x93, 0x04 },
hazheng 30:ff7f83ad6369 341 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 342 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 343 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 344 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 345 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 346 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 347 { 0x93, 0x00 },
hazheng 30:ff7f83ad6369 348 { 0x96, 0x00 },
hazheng 30:ff7f83ad6369 349 { 0x97, 0x08 },
hazheng 30:ff7f83ad6369 350 { 0x97, 0x19 },
hazheng 30:ff7f83ad6369 351 { 0x97, 0x02 },
hazheng 30:ff7f83ad6369 352 { 0x97, 0x0c },
hazheng 30:ff7f83ad6369 353 { 0x97, 0x24 },
hazheng 30:ff7f83ad6369 354 { 0x97, 0x30 },
hazheng 30:ff7f83ad6369 355 { 0x97, 0x28 },
hazheng 30:ff7f83ad6369 356 { 0x97, 0x26 },
hazheng 30:ff7f83ad6369 357 { 0x97, 0x02 },
hazheng 30:ff7f83ad6369 358 { 0x97, 0x98 },
hazheng 30:ff7f83ad6369 359 { 0x97, 0x80 },
hazheng 30:ff7f83ad6369 360 { 0x97, 0x00 },
hazheng 30:ff7f83ad6369 361 { 0x97, 0x00 },
hazheng 30:ff7f83ad6369 362 { 0xc3, 0xed },
hazheng 30:ff7f83ad6369 363 { 0xa4, 0x00 },
hazheng 30:ff7f83ad6369 364 { 0xa8, 0x00 },
hazheng 30:ff7f83ad6369 365 { 0xc5, 0x11 },
hazheng 30:ff7f83ad6369 366 { 0xc6, 0x51 },
hazheng 30:ff7f83ad6369 367 { 0xbf, 0x80 },
hazheng 30:ff7f83ad6369 368 { 0xc7, 0x10 },
hazheng 30:ff7f83ad6369 369 { 0xb6, 0x66 },
hazheng 30:ff7f83ad6369 370 { 0xb8, 0xA5 },
hazheng 30:ff7f83ad6369 371 { 0xb7, 0x64 },
hazheng 30:ff7f83ad6369 372 { 0xb9, 0x7C },
hazheng 30:ff7f83ad6369 373 { 0xb3, 0xaf },
hazheng 30:ff7f83ad6369 374 { 0xb4, 0x97 },
hazheng 30:ff7f83ad6369 375 { 0xb5, 0xFF },
hazheng 30:ff7f83ad6369 376 { 0xb0, 0xC5 },
hazheng 30:ff7f83ad6369 377 { 0xb1, 0x94 },
hazheng 30:ff7f83ad6369 378 { 0xb2, 0x0f },
hazheng 30:ff7f83ad6369 379 { 0xc4, 0x5c },
hazheng 30:ff7f83ad6369 380 { 0xc0, 0x64 },
hazheng 30:ff7f83ad6369 381 { 0xc1, 0x4B },
hazheng 30:ff7f83ad6369 382 { 0x8c, 0x00 },
hazheng 30:ff7f83ad6369 383 { 0x86, 0x3D },
hazheng 30:ff7f83ad6369 384 { 0x50, 0x00 },
hazheng 30:ff7f83ad6369 385 { 0x51, 0xC8 },
hazheng 30:ff7f83ad6369 386 { 0x52, 0x96 },
hazheng 30:ff7f83ad6369 387 { 0x53, 0x00 },
hazheng 30:ff7f83ad6369 388 { 0x54, 0x00 },
hazheng 30:ff7f83ad6369 389 { 0x55, 0x00 },
hazheng 30:ff7f83ad6369 390 { 0x5a, 0xC8 },
hazheng 30:ff7f83ad6369 391 { 0x5b, 0x96 },
hazheng 30:ff7f83ad6369 392 { 0x5c, 0x00 },
hazheng 30:ff7f83ad6369 393 { 0xd3, 0x00 }, //{ 0xd3, 0x7f },
hazheng 30:ff7f83ad6369 394 { 0xc3, 0xed },
hazheng 30:ff7f83ad6369 395 { 0x7f, 0x00 },
hazheng 30:ff7f83ad6369 396 { 0xda, 0x00 },
hazheng 30:ff7f83ad6369 397 { 0xe5, 0x1f },
hazheng 30:ff7f83ad6369 398 { 0xe1, 0x67 },
hazheng 30:ff7f83ad6369 399 { 0xe0, 0x00 },
hazheng 30:ff7f83ad6369 400 { 0xdd, 0x7f },
hazheng 30:ff7f83ad6369 401 { 0x05, 0x00 },
hazheng 30:ff7f83ad6369 402
hazheng 30:ff7f83ad6369 403 { 0x12, 0x40 },
hazheng 30:ff7f83ad6369 404 { 0xd3, 0x04 }, //{ 0xd3, 0x7f },
hazheng 30:ff7f83ad6369 405 { 0xc0, 0x16 },
hazheng 30:ff7f83ad6369 406 { 0xC1, 0x12 },
hazheng 30:ff7f83ad6369 407 { 0x8c, 0x00 },
hazheng 30:ff7f83ad6369 408 { 0x86, 0x3d },
hazheng 30:ff7f83ad6369 409 { 0x50, 0x00 },
hazheng 30:ff7f83ad6369 410 { 0x51, 0x2C },
hazheng 30:ff7f83ad6369 411 { 0x52, 0x24 },
hazheng 30:ff7f83ad6369 412 { 0x53, 0x00 },
hazheng 30:ff7f83ad6369 413 { 0x54, 0x00 },
hazheng 30:ff7f83ad6369 414 { 0x55, 0x00 },
hazheng 30:ff7f83ad6369 415 { 0x5A, 0x2c },
hazheng 30:ff7f83ad6369 416 { 0x5b, 0x24 },
hazheng 30:ff7f83ad6369 417 { 0x5c, 0x00 },
hazheng 30:ff7f83ad6369 418 { 0xff, 0xff },
hazheng 30:ff7f83ad6369 419 };
hazheng 30:ff7f83ad6369 420
hazheng 30:ff7f83ad6369 421 const struct sensor_reg YUV422[] PROGMEM =
hazheng 30:ff7f83ad6369 422 {
hazheng 30:ff7f83ad6369 423 { 0xFF, 0x00 },
hazheng 30:ff7f83ad6369 424 { 0x05, 0x00 },
hazheng 30:ff7f83ad6369 425 { 0xDA, 0x10 },
hazheng 30:ff7f83ad6369 426 { 0xD7, 0x03 },
hazheng 30:ff7f83ad6369 427 { 0xDF, 0x00 },
hazheng 30:ff7f83ad6369 428 { 0x33, 0x80 },
hazheng 30:ff7f83ad6369 429 { 0x3C, 0x40 },
hazheng 30:ff7f83ad6369 430 { 0xe1, 0x77 },
hazheng 30:ff7f83ad6369 431 { 0x00, 0x00 },
hazheng 30:ff7f83ad6369 432 { 0xff, 0xff },
hazheng 30:ff7f83ad6369 433 };
hazheng 30:ff7f83ad6369 434
hazheng 30:ff7f83ad6369 435 const struct sensor_reg JPEG[] PROGMEM =
hazheng 30:ff7f83ad6369 436 {
hazheng 30:ff7f83ad6369 437 { 0xe0, 0x14 },
hazheng 30:ff7f83ad6369 438 { 0xe1, 0x77 },
hazheng 30:ff7f83ad6369 439 { 0xe5, 0x1f },
hazheng 30:ff7f83ad6369 440 { 0xd7, 0x03 },
hazheng 30:ff7f83ad6369 441 { 0xda, 0x10 },
hazheng 30:ff7f83ad6369 442 { 0xe0, 0x00 },
hazheng 30:ff7f83ad6369 443 { 0xFF, 0x01 },
hazheng 30:ff7f83ad6369 444 { 0x04, 0x08 },
hazheng 30:ff7f83ad6369 445 { 0xff, 0xff },
hazheng 30:ff7f83ad6369 446 };
hazheng 30:ff7f83ad6369 447
hazheng 30:ff7f83ad6369 448 /* JPG 160x120 */
hazheng 30:ff7f83ad6369 449 const struct sensor_reg 160x120_JPEG[] PROGMEM =
hazheng 30:ff7f83ad6369 450 {
hazheng 30:ff7f83ad6369 451 { 0xff, 0x01 },
hazheng 30:ff7f83ad6369 452 { 0x12, 0x40 },
hazheng 30:ff7f83ad6369 453 { 0x17, 0x11 },
hazheng 30:ff7f83ad6369 454 { 0x18, 0x43 },
hazheng 30:ff7f83ad6369 455 { 0x19, 0x00 },
hazheng 30:ff7f83ad6369 456 { 0x1a, 0x4b },
hazheng 30:ff7f83ad6369 457 { 0x32, 0x09 },
hazheng 30:ff7f83ad6369 458 { 0x4f, 0xca },
hazheng 30:ff7f83ad6369 459 { 0x50, 0xa8 },
hazheng 30:ff7f83ad6369 460 { 0x5a, 0x23 },
hazheng 30:ff7f83ad6369 461 { 0x6d, 0x00 },
hazheng 30:ff7f83ad6369 462 { 0x39, 0x12 },
hazheng 30:ff7f83ad6369 463 { 0x35, 0xda },
hazheng 30:ff7f83ad6369 464 { 0x22, 0x1a },
hazheng 30:ff7f83ad6369 465 { 0x37, 0xc3 },
hazheng 30:ff7f83ad6369 466 { 0x23, 0x00 },
hazheng 30:ff7f83ad6369 467 { 0x34, 0xc0 },
hazheng 30:ff7f83ad6369 468 { 0x36, 0x1a },
hazheng 30:ff7f83ad6369 469 { 0x06, 0x88 },
hazheng 30:ff7f83ad6369 470 { 0x07, 0xc0 },
hazheng 30:ff7f83ad6369 471 { 0x0d, 0x87 },
hazheng 30:ff7f83ad6369 472 { 0x0e, 0x41 },
hazheng 30:ff7f83ad6369 473 { 0x4c, 0x00 },
hazheng 30:ff7f83ad6369 474 { 0xff, 0x00 },
hazheng 30:ff7f83ad6369 475 { 0xe0, 0x04 },
hazheng 30:ff7f83ad6369 476 { 0xc0, 0x64 },
hazheng 30:ff7f83ad6369 477 { 0xc1, 0x4b },
hazheng 30:ff7f83ad6369 478 { 0x86, 0x35 },
hazheng 30:ff7f83ad6369 479 { 0x50, 0x92 },
hazheng 30:ff7f83ad6369 480 { 0x51, 0xc8 },
hazheng 30:ff7f83ad6369 481 { 0x52, 0x96 },
hazheng 30:ff7f83ad6369 482 { 0x53, 0x00 },
hazheng 30:ff7f83ad6369 483 { 0x54, 0x00 },
hazheng 30:ff7f83ad6369 484 { 0x55, 0x00 },
hazheng 30:ff7f83ad6369 485 { 0x57, 0x00 },
hazheng 30:ff7f83ad6369 486 { 0x5a, 0x28 },
hazheng 30:ff7f83ad6369 487 { 0x5b, 0x1e },
hazheng 30:ff7f83ad6369 488 { 0x5c, 0x00 },
hazheng 30:ff7f83ad6369 489 { 0xe0, 0x00 },
hazheng 30:ff7f83ad6369 490 { 0xff, 0xff },
hazheng 30:ff7f83ad6369 491 };
hazheng 30:ff7f83ad6369 492
hazheng 30:ff7f83ad6369 493
hazheng 30:ff7f83ad6369 494 /* JPG 320x240 */
hazheng 30:ff7f83ad6369 495
hazheng 30:ff7f83ad6369 496 const struct sensor_reg 320x240_JPEG[] PROGMEM =
hazheng 30:ff7f83ad6369 497 {
hazheng 30:ff7f83ad6369 498 { 0xff, 0x01 },
hazheng 30:ff7f83ad6369 499 { 0x12, 0x40 },
hazheng 30:ff7f83ad6369 500 { 0x17, 0x11 },
hazheng 30:ff7f83ad6369 501 { 0x18, 0x43 },
hazheng 30:ff7f83ad6369 502 { 0x19, 0x00 },
hazheng 30:ff7f83ad6369 503 { 0x1a, 0x4b },
hazheng 30:ff7f83ad6369 504 { 0x32, 0x09 },
hazheng 30:ff7f83ad6369 505 { 0x4f, 0xca },
hazheng 30:ff7f83ad6369 506 { 0x50, 0xa8 },
hazheng 30:ff7f83ad6369 507 { 0x5a, 0x23 },
hazheng 30:ff7f83ad6369 508 { 0x6d, 0x00 },
hazheng 30:ff7f83ad6369 509 { 0x39, 0x12 },
hazheng 30:ff7f83ad6369 510 { 0x35, 0xda },
hazheng 30:ff7f83ad6369 511 { 0x22, 0x1a },
hazheng 30:ff7f83ad6369 512 { 0x37, 0xc3 },
hazheng 30:ff7f83ad6369 513 { 0x23, 0x00 },
hazheng 30:ff7f83ad6369 514 { 0x34, 0xc0 },
hazheng 30:ff7f83ad6369 515 { 0x36, 0x1a },
hazheng 30:ff7f83ad6369 516 { 0x06, 0x88 },
hazheng 30:ff7f83ad6369 517 { 0x07, 0xc0 },
hazheng 30:ff7f83ad6369 518 { 0x0d, 0x87 },
hazheng 30:ff7f83ad6369 519 { 0x0e, 0x41 },
hazheng 30:ff7f83ad6369 520 { 0x4c, 0x00 },
hazheng 30:ff7f83ad6369 521 { 0xff, 0x00 },
hazheng 30:ff7f83ad6369 522 { 0xe0, 0x04 },
hazheng 30:ff7f83ad6369 523 { 0xc0, 0x64 },
hazheng 30:ff7f83ad6369 524 { 0xc1, 0x4b },
hazheng 30:ff7f83ad6369 525 { 0x86, 0x35 },
hazheng 30:ff7f83ad6369 526 { 0x50, 0x89 },
hazheng 30:ff7f83ad6369 527 { 0x51, 0xc8 },
hazheng 30:ff7f83ad6369 528 { 0x52, 0x96 },
hazheng 30:ff7f83ad6369 529 { 0x53, 0x00 },
hazheng 30:ff7f83ad6369 530 { 0x54, 0x00 },
hazheng 30:ff7f83ad6369 531 { 0x55, 0x00 },
hazheng 30:ff7f83ad6369 532 { 0x57, 0x00 },
hazheng 30:ff7f83ad6369 533 { 0x5a, 0x50 },
hazheng 30:ff7f83ad6369 534 { 0x5b, 0x3c },
hazheng 30:ff7f83ad6369 535 { 0x5c, 0x00 },
hazheng 30:ff7f83ad6369 536 { 0xe0, 0x00 },
hazheng 30:ff7f83ad6369 537 { 0xff, 0xff },
hazheng 30:ff7f83ad6369 538 };
hazheng 30:ff7f83ad6369 539
hazheng 30:ff7f83ad6369 540 }
hazheng 30:ff7f83ad6369 541
hazheng 29:f87d8790f57d 542 #endif //OV2640_REG_PROG_H