static CameraPacket getPacket(void) { T2CON = 0x0020; // disabled, prescaled, internal oscillator TMR2 = 0; // clear the timer PR2 = CLOCKS_PER_SEC/64/10 - 1; // interrupt at 1kHz (1ms) _T2IE = ON; // enable Timer2 to interrupt _T2IF = OFF; // clear the interrupt flag _T2IP = 4; // set priority to real-time T2CONbits.TON = 1; CameraPacket inPacket = newCameraPacket(); while(cameraComPort.size() < 8) if(!T2CONbits.TON) break; cameraComPort.receive(inPacket.raw,8); return inPacket; }