diff --git a/zynq_7010_code/HCamDevice.cpp b/zynq_7010_code/HCamDevice.cpp index 976b58c..ae79335 100644 --- a/zynq_7010_code/HCamDevice.cpp +++ b/zynq_7010_code/HCamDevice.cpp @@ -113,8 +113,8 @@ HCamDevice::HCamDevice() HtCamSetdivder(true); - unsigned int prriod[2] = {0x183C,0x183C/2}; - HtCamSetPeriod(prriod); + + HtCamSetPeriod(0.2); HtCamWriteFpgaRegs(17, 0x04ce99ff); //扫描传感器阈值 @@ -302,8 +302,12 @@ void HCamDevice::HtCamSetdivder(bool is_enble) rgb.NShort[1] = 0x0001; HtCamWriteFpgaRegs(0x08,rgb.value); } -void HCamDevice::HtCamSetPeriod(uint32_t *reg_value) +void HCamDevice::HtCamSetPeriod(double reg_value) { + reg_value /= 10; + printf("reg_value:%f\r\n",reg_value); + double pr = reg_value == 0 ? 0x183C/2 :reg_value * 0x183C / 1; + if (virBaseAddr == NULL) { return ; @@ -312,8 +316,10 @@ void HCamDevice::HtCamSetPeriod(uint32_t *reg_value) CamZ_Reg_2Short rgb; rgb.value = HtCamReadFpgaRegs(0x09); - rgb.NShort[0] = reg_value[0]; //周期参数是占空比两倍 - rgb.NShort[1] = reg_value[1]; //占空比 + rgb.NShort[0] = 0x183C; //周期参数默认0x183C 不可修改 + rgb.NShort[1] = pr; //占空比 = 百分比 / 0x183C *1 + + printf("占空比:%d\r\n",rgb.NShort[1]); HtCamWriteFpgaRegs(0x09,rgb.value); } int HCamDevice::HtCamEventWorkThread(void) diff --git a/zynq_7010_code/HCamDevice.h b/zynq_7010_code/HCamDevice.h index 55a4e3a..de764b1 100644 --- a/zynq_7010_code/HCamDevice.h +++ b/zynq_7010_code/HCamDevice.h @@ -51,7 +51,7 @@ public: void HtCamSetdivder (bool ); //设置扫描仪传感器使能 void HtCamGetPeriod(uint8_t ®_value);//获取扫描仪传感器占空比 - void HtCamSetPeriod(uint32_t *reg_value); //设置扫描仪传感器占空比 + void HtCamSetPeriod(double reg_value); //设置扫描仪传感器占空比 void HtCamGetFrameCnt(uint32_t &val);//获取设置采集的帧数 需要采集的帧数,设置为0x05表示采集六帧后停止 void HtCamSetFrameCnt(uint32_t val);//需要采集的帧数,设置为0x05表示采集六帧后停止 diff --git a/zynq_7010_code/MultiFrameCapture.cpp b/zynq_7010_code/MultiFrameCapture.cpp index a1d8c83..db59668 100644 --- a/zynq_7010_code/MultiFrameCapture.cpp +++ b/zynq_7010_code/MultiFrameCapture.cpp @@ -189,7 +189,8 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config) is_double_paper_ = config.params.doubleFeeded; //width_ = paper_size_ == PaperSize::G400_MAXSIZE || paper_size_ ==PaperSize::G400_MAXAUTO && - + printf("config.params.dc;%d\r\n",config.params.dc); + video->HtCamSetPeriod(config.params.dc); //int height = resolution_ == DPI_600 ? 342 : 900; int height = config.params.dpi == 3 ? 900 :(config.params.dpi == 2?999:300); diff --git a/zynq_7010_code/scanservices_utils.h b/zynq_7010_code/scanservices_utils.h index 02104ad..e518b91 100644 --- a/zynq_7010_code/scanservices_utils.h +++ b/zynq_7010_code/scanservices_utils.h @@ -175,7 +175,7 @@ struct unsigned int slow_moire : 1; unsigned int reversed1 : 3; unsigned int isCorrect : 1; - unsigned int dstHeight : 8; + unsigned int dc : 8; unsigned int reversed2 : 6; } params; unsigned int value;