/*============================================================================= * MENU STUFF */ static bool MENUinput(boxC& b) { switch(inputK()) { case 27: exit(0); break; case 32: BLOrelo(); break; case 'a': displayRotate(0.0, -5.0, 0.0); break; case 'd': displayRotate(0.0, +5.0, 0.0); break; case 'w': displayRotate(+5.0, 0.0, 0.0); break; case 's': displayRotate(-5.0, 0.0, 0.0); break; case 'q': displayRotate( 0.0, 0.0,+5.0); break; case 'e': displayRotate( 0.0, 0.0,-5.0); break; case 'z': BLOcolor(+1); break; case 'x': BLOcolor(-1); break; case '+': displaySpeed(+1); break; case '-': displaySpeed(-1); break; // case '.': displaySwitchMode(); break; case 'm': BLOunit(+1); break; case 'n': BLOunit(-1); break; case 'r': BLOske(0, +5.0); break; case 'f': BLOske(0, -5.0); break; case 't': BLOske(1, +5.0); break; case 'g': BLOske(1, -5.0); break; case 'y': BLOske(2, +5.0); break; case 'h': BLOske(2, -5.0); break; case 'u': BLOske(3, +5.0); break; case 'j': BLOske(3, -5.0); break; case 'i': BLOske(4, +5.0); break; case 'k': BLOske(4, -5.0); break; case 'o': BLOske(5, +5.0); break; case 'l': BLOske(5, -5.0); break; default: break; } switch(inputE()) { /* case GLUT_KEY_UP: visualScroll( 0.0, +sp); break; case GLUT_KEY_DOWN: visualScroll( 0.0, -sp); break; case GLUT_KEY_LEFT: visualScroll( -sp, 0.0); break; case GLUT_KEY_RIGHT:visualScroll( +sp, 0.0); break;*/ // case GLUT_KEY_F1: quadSwitchSurfaceMode(); break; // case GLUT_KEY_F2: quadSwitchWireMode(); break; default: break; } // buttons /* bt_t *a; if(key) if(a = guiBtKey(MENUbtset, key)) a->call(a); if(a = guiBtMouse(MENUbtset, guiMouseX(), guiMouseY())) if(a->call) a->call(a); */ }
void startUp () { display(-2); displaySpeed(1,0); setSpeed(1,0); _delay_ms(5); display(-1); _delay_ms(5); for (int i = 1; i < 5; i++) { display(-2); displaySpeed(i,1); setSpeed(i,1); _delay_ms(5); display(-1); _delay_ms(5); } for (int i = 4; i > 0; i--) { display(-2); displaySpeed(i,1); setSpeed(i,1); _delay_ms(5); display(-1); _delay_ms(5); } }
int main(void) { init(); startUp(); for (int i = 1; i < 4; i++) LEEnabel(i); while (1) { fireMode = getFireMode(); newMagSize = getMag(); //save the Mag size if(newMagSize == -1) { newMag = 0; //Mag-slot empty ammoCounter = -1; } if(((newMag == 0) & !(newMagSize == -1))) //Mag-slot not empty anymore { ammoCounter = newMagSize; newMag = 1; } if(adcOn == 0) display(ammoCounter); if(adcOn == 1) { volt |= (ADCL); volt |= (ADCH << 8); volt = volt *15; volt = volt /1023; display(volt); } displaySpeed(speed, motorOn); setSpeed(speed, motorOn); } }
/* * Leer velocidad. Esta tarea recive como parámetros dos buffers, el primero * lo usa para escribir el contenido de la request. El segundo lo hace * para guardar la respuesta del servidor de comunicaciones. * * Esta funcion devuelve la velocidad actual de la carreta o -1.0 si obtuvo un error */ float read_speed(char * request_buf, char * answer_buf) { strcpy(request_buf,"SPD: REQ\n"); wr_arduino(request_buf, answer_buf); if (1 == sscanf (answer_buf,"SPD:%f\n",&CURRENT_SPEED)) { displaySpeed(CURRENT_SPEED); } else { CURRENT_SPEED = -1.0; //Server returned error } //TODO remove this for final version return CURRENT_SPEED; }
void lightDisplay(void) { int i; clearStates(); displaySpeed(); displayDirection(); _delay_ms(1000); for (i = 0; i < 8; i++) { dir[i] = ON; if (i < 6) { spd[i] = ON; if (i < 4) { ctrl[i] = ON; } } displaySpeed(); displayDirection(); _delay_ms(1000); } }
void toggleDisplay(){ int temp = displayMode + 1; temp = temp % 3; displayMode = temp; clearDisplay(); if(displayMode == 0){ displaySpeed(); }else if(displayMode == 1){ displayDistance(); }else if(displayMode == 2){ displayTime(); } }
void displayCalculations(){ switch(displayMode){ case 0: displaySpeed(); break; case 1: displayDistance(); break; case 2: displayTime(); break; default: displayNumbers(-1,-1,-1,-1); break; } }
int main(void) { //setup USART recive UCSR0B = (1<<RXEN0); UCSR0C = (1<<UCSZ00) | (1<<UCSZ01); UBRR0 = 25; // 25 = 2400 baud; 6 = 9600 baud /* Set pins as output, high->output, low->input */ DDRA = 0xFF; /* Pin for LED out */ DDRB = 0xFF; /* Pin for LED out */ DDRC = 0xFF; /* Pin for LED out */ DDRD = 0xFE; /* Pin for LED out */ unsigned char input; unsigned char value; unsigned char control; PORTA = 0xFF; PORTB = 0xFF; PORTC = 0xFF; PORTD = 0xFF; _delay_ms(1000); /* while (1){ clearStates(); lightDisplay(); }*/ /* int i = 0; unsigned int states[4] = {0x27, 0xA0, 0x56, 0xD4}; */ /* while (1) { unsigned char in = USART_Receive(); for (int i = 0; i < 8; i++) { dir[i] = (in>>(7-i))&0x1; } displayDirection(); } */ while(1) { //clearStates(); input = USART_Receive(); //input = 0x27; /* _delay_ms(2000); input = states[i]; i++; i = i%4;*/ control = input & CTRL_MSK; if (input & CMD_BIT) { ctrl[LONG_SIP] = control == LONG_SIP ? ON : OFF; ctrl[LONG_PUFF] = control == LONG_PUFF ? ON : OFF; ctrl[SIP] = control == SIP || ctrl[LONG_SIP] ? ON : OFF; ctrl[PUFF] = control == PUFF || ctrl[LONG_PUFF] ? ON : OFF; } else { clearCtrl(); } value = (input&VAL_MSK) >> 3; if (input & SPD_BIT) { //SPEED clearSpeed(); if (input & NEG_BIT) { //REVERSE spd[0] = ON; } else { //FORWARD switch (value) { default: case 4: spd[4+SPD_OFFSET] = ON; case 3: spd[3+SPD_OFFSET] = ON; case 2: spd[2+SPD_OFFSET] = ON; case 1: spd[1+SPD_OFFSET] = ON; break; case 0: spd[0+SPD_OFFSET] = ON; break; } } displaySpeed(); } else { //DIRECTION clearDir(); if (input & NEG_BIT) { //LEFT switch (value) { default: case 4: dir[DIR_OFFSET+1-4] = ON; case 3: dir[DIR_OFFSET+1-3] = ON; case 2: dir[DIR_OFFSET+1-2] = ON; case 1: dir[DIR_OFFSET+1-1] = ON; break; case 0: break; } } else { //RIGHT switch (value) { default: case 4: dir[4+DIR_OFFSET] = ON; case 3: dir[3+DIR_OFFSET] = ON; case 2: dir[2+DIR_OFFSET] = ON; case 1: dir[1+DIR_OFFSET] = ON; break; case 0: break; } } displayDirection(); } } return 0; }