int main (void) { // init lcam_initport(); lcam_reset(); lcam_setup(); waitms(20); // global vars unsigned char buffer[102]; unsigned char pic_pos = 0; unsigned char led_val = 1; while(1) { digitalWrite(C,2,led_val); // start acquiring image lcam_startintegration(); waitus(INTEGRATION); // end integration lcam_stop(buffer); // delay between two successive acquisitions waitms(DELAY); pic_pos = lcam_getpic(buffer); // begin frame uartSendString("START"); //uartSendByte(pic_pos); unsigned char i = 0; for(i=0;i<102;i++) { uartSendByte((buffer[i]>>3)+'0'); //waitus(100); } uartSendByte('\0'); led_val ^= 1; } // never reached }
void lcam_setup(void) { lcam_reset(); lcam_pulse_clock(10); // set inputs and outputs pinMode(LCAM_SCLK, OUTPUT); pinMode(LCAM_SDIN, OUTPUT); pinMode(LCAM_SDOUT0, INPUT); pinMode(LCAM_SDOUT1, INPUT); pinMode(LCAM_SDOUT2, INPUT); pinMode(LCAM_SDOUT3, INPUT); pinMode(LCAM_SDOUT4, INPUT); pinMode(LCAM_SDOUT5, INPUT); // make sure the clock is cleared digitalWrite(LCAM_SCLK, LOW); // Left offset lcam_send(0x40); lcam_send(0); lcam_pulse_clock(10); // Left gain lcam_send(0x41); lcam_send(15); lcam_pulse_clock(10); // Middle offset lcam_send(0x42); lcam_send(0); lcam_pulse_clock(10); // Middle gain lcam_send(0x43); lcam_send(15); lcam_pulse_clock(10); // Right offset lcam_send(0x44); lcam_send(0); lcam_pulse_clock(10); // Right gain lcam_send(0x45); lcam_send(15); lcam_pulse_clock(10); }