lpcware

Image capturing using LPC1768 and GC0303 CMOS IMAGE sensor

Discussion created by lpcware Employee on Jun 15, 2016
Content originally posted in LPCWare by henryengenharia on Tue Jul 14 05:21:14 MST 2015
Hi,

I´m developing a fingerprint image capture using the GC0303 to do it, I finish the configuration procedure but when I try capture a line I only receive 1/3 of the bytes. Someone can help me with any idea how I can adjust the below capture routine:

void EINT3_IRQHandler(void) {
uint32_t rising = LPC_GPIOINT->IO2IntStatR;
uint32_t falling = LPC_GPIOINT->IO2IntStatF;
if (rising & (1 << RS_BIT)) {// PCLK RISE
if (hflag == 1){// INCREASE COUNTER ONLY IF HSYNC IS HIGH
p_counterbuf[h_counter]++;
}
LPC_GPIOINT->IO2IntClr |= (1 << RS_BIT); // clear interruption flag.
} else {
if (rising & (1 << EN_BIT)) {// VSYNC RISE
if (h_counter > 0){// IF have captured lines transmit by serial
if (h_counter == 0x1E2){
serManager_sendData(&p_counterbuf, 2*h_counter);
}
h_counter = 0;// clear horizontal counter
}
LPC_GPIOINT->IO2IntClr |= (1 << EN_BIT); // clear interruption flag.
}
if (rising & (1 << RW_BIT)) {// HSYNC RISE, NEW DATA
hflag = 1;// INDICATE HSYNC status
p_counterbuf[h_counter] = 0;// CLEAR PCLK COUNTER
LPC_GPIOINT->IO2IntClr |= (1 << RW_BIT); // clear interruption flag.
}
}
if (falling & (1 << RW_BIT)){// HSYNC FALL, new line
hflag = 0;
h_counter++;
LPC_GPIOINT->IO2IntClr |= (1 << RW_BIT); // clear interruption flag.
}
return;
}

Outcomes