int main() // Main - execution begins! { xbee = fdserial_open(11, 10, 0, 9600); //dprint(xbee, "hello"); //dprint(xbee, "hello"); drive_speed(0,0); // Start servos/encoders cog drive_setRampStep(10); // Set ramping at 10 ticks/sec per 20 ms sirc_setTimeout(50); // Remote timeout = 50 ms //drive_feedback(0); dt = CLKFREQ/10; t = CNT; while(1) // Outer loop { int button = sirc_button(4); // check for remote key press // Motion responses - if key pressed, set wheel speeds if(button == 2) { if(!running) cogstart(&gofwd, NULL, fstack, sizeof fstack); } if(button == 8) { if(!running) cogstart(&gobkwd, NULL, bstack, sizeof bstack); } if(button == CH_UP)drive_rampStep(100, 100); // Left turn if(button == CH_DN)drive_rampStep(-100, -100); // Right turn if(button == VOL_DN)drive_rampStep(-100, 100); // Left turn if(button == VOL_UP)drive_rampStep(100, -100); // Right turn if(button == MUTE)drive_rampStep(0, 0); // Stop if(button == ENTER) { getTicks(); displayTicks(); } if(CNT - t > dt) { t+=dt; i++; getTicks(); if ( ticksLeftCalc != ticksLeftCalcOld || ticksRightCalc != ticksRightCalcOld || ticksLeft != ticksLeftOld || ticksRight != ticksRightOld ) { displayTicks(); } } } }
void glut_renderScene() { glEnable (GL_TEXTURE_2D); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, GLUT_BUFSIZE, GLUT_BUFSIZE, GL_RGB, GL_FLOAT, &texture[0][0][0]); glBegin(GL_QUADS); glTexCoord2f(0.0f+offset, 0.0f); glVertex2f(-1.0, -1.0); glTexCoord2f(0.5f+offset, 0.0f); glVertex2f(-1.0, 1.0); glTexCoord2f(0.5f+offset, 1.0f); glVertex2f( 1.0, 1.0); glTexCoord2f(0.0f+offset, 1.0f); glVertex2f( 1.0, -1.0); glEnd(); displayTicks(); glFlush(); glutSwapBuffers(); }