Ejemplo n.º 1
0
void advancedConfig() {
	
	while(1) {
	
		menuMax = 1;
		selectedMenu = NOT_SELECTED;
		currentMenu = 0;

		while(selectedMenu == NOT_SELECTED) {
			if (currentMenu == 0) { // DWELL
				greenOn();
				delay_ms(50);
				greenOff();
				redOn();
				delay_ms(50);
				redOff();
				
				delay_ms(800);
			} else if (currentMenu == 1) { // DEBOUNCE 2
				for (uint8_t i = 0; i < 2; i++) {
					greenOn();
					delay_ms(50);
					greenOff();
					redOn();
					delay_ms(50);
					redOff();
					delay_ms(100);
				}

				delay_ms(700);
			}
		}
	
		if (selectedMenu == 0) { // DWELL
			// Max is set high to prevent wrapping around to 0 without the user knowing
			getNumberFromUser(USER_DWELL, 255);
	
			// Dwell was entered into selectedMenu.  Verify it and save it.
			if (selectedMenu >= 2 && selectedMenu <= 20) {
				eeprom_write_byte(&EEPROM_USER_DWELL, selectedMenu);
				USER_DWELL = selectedMenu;
				successBlink();
			} else {
				failureBlink();
			}
		} else { // DEBOUNCE
			// Max is set high to prevent wrapping around to 0 without the user knowing
			getNumberFromUser(USER_DEBOUNCE, 255);
		
			// Debounce was entered into selectedMenu.  Verify it and save it.
			if (selectedMenu >= 5 && selectedMenu <= 50) {
				eeprom_write_byte(&EEPROM_USER_DEBOUNCE, selectedMenu);
				USER_DWELL = selectedMenu;
				successBlink();
			} else {
				failureBlink();
			}
		}	
	}			
}
Ejemplo n.º 2
0
void burstSizeMenu() {
	getNumberFromUser(BURST_SIZE, 10);
	
	// Burst size was entered into selectedMenu.  Verify it and save it.
	if (selectedMenu >= 2 && selectedMenu <= 10) {
		eeprom_write_byte(&EEPROM_BURST_SIZE[currentSelector][CURRENT_PRESET[currentSelector]], selectedMenu);
		BURST_SIZE = selectedMenu;
		successBlink();
	} else {
		failureBlink();
	}
}
Ejemplo n.º 3
0
void rateOfFireMenu() {
	 getNumberFromUser(BALLS_PER_SECOND, 40);
	
	// Firing rate was entered into selectedMenu.  Verify it and save it.
	if (selectedMenu >= 5 && selectedMenu <= 40) {
		eeprom_write_byte(&EEPROM_BALLS_PER_SECOND[currentSelector][CURRENT_PRESET[currentSelector]], selectedMenu);
		BALLS_PER_SECOND = selectedMenu;
		successBlink();
	} else {
		failureBlink();
	}
}
Ejemplo n.º 4
0
void safetyShotMenu() {
	getNumberFromUser(SAFETY_SHOT, 5);
	
	// Burst size was entered into selectedMenu.  Verify it and save it.
	if (selectedMenu >= 0 && selectedMenu <= 250) {
		eeprom_write_byte(&EEPROM_SAFETY_SHOT[currentSelector][CURRENT_PRESET[currentSelector]], selectedMenu);
		SAFETY_SHOT = selectedMenu;
		successBlink();
	} else {
		failureBlink();
	}
}
Ejemplo n.º 5
0
void ammoLimitMenu() {
	getNumberFromUser(AMMO_LIMIT, 250);
	
	// Burst size was entered into selectedMenu.  Verify it and save it.
	if (selectedMenu >= 0 && selectedMenu <= 250) {
		eeprom_write_byte(&EEPROM_AMMO_LIMIT[currentSelector][CURRENT_PRESET[currentSelector]], selectedMenu);
		AMMO_LIMIT = selectedMenu;
		successBlink();
	} else {
		failureBlink();
	}
}
Ejemplo n.º 6
0
void firingModeMenu() {
	menuMax = 3;
	selectedMenu = NOT_SELECTED;
	currentMenu = FIRING_MODE;
	bool state = LOW;
	while(selectedMenu == NOT_SELECTED) {
		if (currentMenu == 0) {
			state = !state;
			
			redSet(state);
			greenOff();
			
			delay_ms(50);
		} else if (currentMenu == 1) { // Three Round Burst
			lightsOff();
			
			// Display as three blinks of green then pause and repeat
			for (uint8_t i = 0; i < 3; i++) {
				greenOn();
				delay_ms(100);
				greenOff();
				
				if (selectedMenu != NOT_SELECTED) {
					break;
				}
				
				if (i == 2) {
					delay_ms(1000);
				} else {
					delay_ms(100);
				}
			}				
		} else if (currentMenu == 2) { // Auto Response
			lightsOff();
	
			// Display as blink green, blink red, then pause
			greenOn();
			delay_ms(100);
			greenOff();
			delay_ms(100);
			redOn();
			delay_ms(100);
			redOff();

			if (selectedMenu != NOT_SELECTED) {
				break;
			}
		
			delay_ms(1000);
		} else if (currentMenu == 3) { // Auto Response
			redOff();
			greenOn();
		}
	}
	
	if (selectedMenu >= 0 && selectedMenu <= 3) {
		eeprom_write_byte(&EEPROM_FIRING_MODE[currentSelector][CURRENT_PRESET[currentSelector]], selectedMenu);
		successBlink();
	} else {
		failureBlink();
	}
}