⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zc3xx.h

📁 三星2440 cpu WINCE 5.00板级支持包
💻 H
📖 第 1 页 / 共 3 页
字号:
    U8 frxt = 0x30;    quality = (spca50x->qindex) & 0x0f;    spca5xxRegWrite(spca50x, 0xa0, quality, 0x0008, NULL, 0);    spca5xxRegWrite(spca50x, 0xa0, frxt, 0x0007, NULL, 0);    switch (quality){    case 0:    case 1:    case 2:    frxt = 0xff;    break;    case 3:    frxt = 0xf0;    break;    case 4:    frxt = 0xe0;    break;    case 5:    frxt = 0x20;    break;    }    spca5xxRegWrite(spca50x, 0xa0, frxt, 0x0018, NULL, 0);    }static void zc3xx_setAutobright(USBCAM_CONTEXT*spca50x){    U8 autoval = 0;    if (spca50x->autoexpo)	autoval = 0x42;    else	autoval = 0x02;	spca5xxRegWrite(spca50x, 0xa0, autoval, 0x0180, NULL, 0);}static void zc3xx_start(USBCAM_CONTEXT*spca50x){    int err = 0;    /* Assume start use the good resolution from spca50x->mode */    //err = zcxx_probeSensor(spca50x);    switch (spca50x->sensor) {    case SENSOR_TAS5130CXX:	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, tas5130cxx_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, tas5130cxx_scale_data);	}	break;    case SENSOR_TAS5130C_FV0250: // Firmware version 0250	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, tas5130c_fv0250_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, tas5130c_fv0250_scale_data);	}	break;    case SENSOR_ICM105A:	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, icm105axx_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, icm105axx_scale_data);	}	break;    case SENSOR_HDCS2020:	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, hdcs2020xx_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, hdcs2020xx_scale_data);	}	break;    case SENSOR_HDCS2020b:	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, hdcs2020xb_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, hdcs2020xb_scale_data);	}	break;    case SENSOR_HV7131B:    err = zcxx_probeSensor(spca50x);	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, hv7131bxx_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, hv7131bxx_scale_data);	}	break;    case SENSOR_HV7131C:	//HV7131R    err = zcxx_probeSensor(spca50x);	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, hv7131cxx_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, hv7131cxx_scale_data);	}	break;    case SENSOR_PB0330:	if (spca50x->mode) {	    /* 320x240 */	    if ((spca50x->chip_revision == 0xc001)		|| (spca50x->chip_revision == 0xe001)		|| (spca50x->chip_revision == 0x8001))		err = zc3xxWriteVector(spca50x, pb03303x_start_data);	    else		err = zc3xxWriteVector(spca50x, pb0330xx_start_data);	} else {	    /* 640x480 */	    if ((spca50x->chip_revision == 0xc001)		|| (spca50x->chip_revision == 0xe001)		|| (spca50x->chip_revision == 0x8001))		err = zc3xxWriteVector(spca50x, pb03303x_scale_data);	    else		err = zc3xxWriteVector(spca50x, pb0330xx_scale_data);	}	break;    case SENSOR_CS2102:	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, cs2102_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, cs2102_scale_data);	}	break;    case SENSOR_OV7630C:	if (spca50x->mode) {	    /* 320x240 */	    err = zc3xxWriteVector(spca50x, ov7630c_start_data);	} else {	    /* 640x480 */	    err = zc3xxWriteVector(spca50x, ov7630c_scale_data);	}	break;    case SENSOR_PAS106:    err= zc3xxWriteVector(spca50x, pas106b_com_data);	if (spca50x->mode) {	    /* 176x144 */	    err = zc3xxWriteVector(spca50x, pas106b_start_data);	   	} else {	    /* 352x288 */	    err = zc3xxWriteVector(spca50x, pas106b_scale_data);   	}	break;    }    zc3xx_setbrightness(spca50x);    zc3xx_setquality(spca50x);    zc3xx_setAutobright(spca50x);}static void zc3xx_stop0(USBCAM_CONTEXT *spca50x){// Nothing todo     switch (spca50x->sensor) {     case SENSOR_PAS106:                spca5xxRegWrite(spca50x, 0xa0, 0x01, 0x0000, NULL, 0);		spca5xxRegWrite(spca50x, 0xa0, 0x03, 0x003a, NULL, 0);		spca5xxRegWrite(spca50x, 0xa0, 0x0c, 0x003b, NULL, 0);		spca5xxRegWrite(spca50x, 0xa0, 0x08, 0x0038, NULL, 0);     break;    }}static void zc3xx_shutdown(USBCAM_CONTEXT *spca50x){     U8 buffread;    spca5xxRegRead(spca50x, 0xa1, 0x01, 0x0180, &buffread, 1);    spca5xxRegWrite(spca50x, 0xa0, 0x00, 0x0180, NULL, 0);    spca5xxRegWrite(spca50x, 0xa0, 0x01, 0x0000, NULL, 0);}static U16 zc3xx_getcolors(USBCAM_CONTEXT *spca50x){//Nothingreturn spca50x->colour;}static void zc3xx_setcolors(USBCAM_CONTEXT *spca50x){//Nothing spca50x->colour = 0;}static int zc3xx_sofdetect(USBCAM_CONTEXT *spca50x, unsigned char *cdata,int *iPix, int seqnum, int *datalength){				if (cdata[0] == 0xFF && cdata[1] == 0xD8) {		    *iPix = 2;	//18 remove 0xff 0xd8;		    *datalength -= *iPix;		    return 0;		    RETAILMSG(5,(TEXT(			   "Zc301 header packet found datalength %d !!"),			   *datalength) );		} 		*iPix = 0;		return (seqnum +1);} static void zc3xx_set50HZ(USBCAM_CONTEXT *spca50x) {     switch (spca50x->sensor) {      case SENSOR_TAS5130C_FV0250: 	  zc3xxWriteVector(spca50x, tas5130c_fv0250_50HZ);      break;      case SENSOR_TAS5130CXX: 	  zc3xxWriteVector(spca50x, tas5130cxx_50HZ);      case SENSOR_PB0330: 	  zc3xxWriteVector(spca50x, pb0330_50HZ);      break;      case SENSOR_PAS106: 	  zc3xxWriteVector(spca50x, pas106b_50HZ);      break;      case SENSOR_ICM105A: 	  zc3xxWriteVector(spca50x, icm105a_50HZ);      break;      case SENSOR_HDCS2020b: 	  zc3xxWriteVector(spca50x, hdcs2020b_50HZ);      break;      case SENSOR_CS2102: 	  zc3xxWriteVector(spca50x, cs2102_50HZ);      break;      default:           break;     } } static void zc3xx_set60HZ(USBCAM_CONTEXT *spca50x) {     switch (spca50x->sensor) {      case SENSOR_TAS5130C_FV0250: 	  zc3xxWriteVector(spca50x, tas5130c_fv0250_60HZ);      break;      case SENSOR_TAS5130CXX: 	  zc3xxWriteVector(spca50x, tas5130cxx_60HZ);      break;      case SENSOR_PB0330: 	  zc3xxWriteVector(spca50x, pb0330_60HZ);      break;      case SENSOR_PAS106: 	  zc3xxWriteVector(spca50x, pas106b_60HZ);      break;      case SENSOR_ICM105A: 	  zc3xxWriteVector(spca50x, icm105a_60HZ);      break;      case SENSOR_HDCS2020b: 	  zc3xxWriteVector(spca50x, hdcs2020b_60HZ);      break;      case SENSOR_CS2102: 	  zc3xxWriteVector(spca50x, cs2102_60HZ);      break;      default:           break;     } } static void zc3xx_set50HZScale(USBCAM_CONTEXT *spca50x) {     switch (spca50x->sensor) {           case SENSOR_TAS5130C_FV0250: 	  zc3xxWriteVector(spca50x, tas5130c_fv0250_50HZScale);      break;      case SENSOR_TAS5130CXX: 	  zc3xxWriteVector(spca50x, tas5130cxx_50HZScale);      break;      case SENSOR_PB0330: 	  zc3xxWriteVector(spca50x, pb0330_50HZScale);      break;      case SENSOR_PAS106: 	  zc3xxWriteVector(spca50x, pas106b_50HZ);      break;      case SENSOR_ICM105A: 	  zc3xxWriteVector(spca50x, icm105a_50HZScale);      break;      case SENSOR_HDCS2020b: 	  zc3xxWriteVector(spca50x, hdcs2020b_50HZScale);      break;      case SENSOR_CS2102: 	  zc3xxWriteVector(spca50x, cs2102_50HZScale);      break;      default:      break;     }  } static void zc3xx_set60HZScale(USBCAM_CONTEXT *spca50x) {     switch (spca50x->sensor) {      case SENSOR_TAS5130C_FV0250: 	  zc3xxWriteVector(spca50x, tas5130c_fv0250_60HZScale);      break;      case SENSOR_TAS5130CXX: 	  zc3xxWriteVector(spca50x, tas5130cxx_60HZScale);      break;      case SENSOR_PB0330: 	  zc3xxWriteVector(spca50x, pb0330_60HZScale);      break;      case SENSOR_PAS106: 	  zc3xxWriteVector(spca50x, pas106b_60HZ);      break;      case SENSOR_ICM105A: 	  zc3xxWriteVector(spca50x, icm105a_60HZScale);      break;      case SENSOR_HDCS2020b: 	  zc3xxWriteVector(spca50x, hdcs2020b_60HZScale);      break;      case SENSOR_CS2102: 	  zc3xxWriteVector(spca50x, cs2102_60HZScale);      break;      default:      break;     }  } static void zc3xx_setNoFliker(USBCAM_CONTEXT *spca50x) {     switch (spca50x->sensor) {      case SENSOR_TAS5130C_FV0250: 	  zc3xxWriteVector(spca50x, tas5130c_fv0250_NoFliker);      break;      case SENSOR_TAS5130CXX: 	  zc3xxWriteVector(spca50x, tas5130cxx_NoFliker);      break;      case SENSOR_PB0330: 	  zc3xxWriteVector(spca50x, pb0330_NoFliker);      break;      case SENSOR_PAS106: 	  zc3xxWriteVector(spca50x, pas106b_NoFliker);      break;      case SENSOR_ICM105A: 	  zc3xxWriteVector(spca50x, icm105a_NoFliker);      break;      case SENSOR_HDCS2020b: 	  zc3xxWriteVector(spca50x, hdcs2020b_NoFliker);      break;      case SENSOR_CS2102: 	  zc3xxWriteVector(spca50x, cs2102_NoFliker);      break;      default:      break;     }  } static void zc3xx_setNoFlikerScale(USBCAM_CONTEXT *spca50x) {     switch (spca50x->sensor) {      case SENSOR_TAS5130C_FV0250: 	  zc3xxWriteVector(spca50x, tas5130c_fv0250_NoFlikerScale);      break;      case SENSOR_TAS5130CXX: 	  zc3xxWriteVector(spca50x, tas5130cxx_NoFlikerScale);      break;      case SENSOR_PB0330: 	  zc3xxWriteVector(spca50x, pb0330_NoFlikerScale);      break;      case SENSOR_PAS106: 	  zc3xxWriteVector(spca50x, pas106b_NoFliker);      break;      case SENSOR_ICM105A: 	  zc3xxWriteVector(spca50x, icm105a_NoFlikerScale);      break;      case SENSOR_HDCS2020b: 	  zc3xxWriteVector(spca50x, hdcs2020b_NoFlikerScale);      break;      case SENSOR_CS2102: 	  zc3xxWriteVector(spca50x, cs2102_NoFlikerScale);      break;      default:      break;     } }#endif				// ZC3XXUSB_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -