Пример #1
0
int main(void) {
	m_clockdivide(0);
	setup_pins();
	if ( RF_debug) {setupUSB();}
	setup_timer_1();
	setup_timer_3();
	m_bus_init();
	m_rf_open(chan,RX_add,p_length);

	int timer_3_cnt = 0;

	//sei();
	set_motors(0,0);
	while (1){
		if (check(TIFR3,OCF3A)){
			set(TIFR3, OCF3A);
			timer_3_cnt++;
			if ( timer_3_cnt % 10 ==0 ) {
				timer_3_cnt=0;
				m_green(TOGGLE);
			}
			if ( timer_3_cnt == 1000){ timer_3_cnt=0;}
		}
		if(new){
			switch ( receive_buffer[11] ) {
				case Single_Joy: single_joystick(); break;
				case Double_Joy: double_joystick(); break;
				case Tank_Mode: tank_driving(); break;
				case Mario_Kart: Mario_Drive(); break;
				default : set_motors(0,0); m_green(2);
			}
			if(RF_debug){ debug_rf(); }
		}
	}
}
Пример #2
0
int main(void) { 

	m_disableJTAG();
	m_clockdivide(2);
	setup_pins();
	if (debug_fire|| RF_debug) {setupUSB();}
	setup_timer_1();
	setup_timer_3();
	m_bus_init();
	m_rf_open(chan,RX_add,p_length);

	int timer_3_cnt = 0;

	//sei();
	set_motors(0,0);
	while (1){
		if (check(TIFR3,OCF3A)){
			set(TIFR3, OCF3A);
			timer_3_cnt++;
			
			if(fired){
				since_fired++;
				if (debug_fire){
					m_usb_tx_string(" its been\t");
					m_usb_tx_int(since_fired);
					m_usb_tx_string(" milisec\n\r");
				}
			}
			if (since_fired>10){ 
				clear(PORTF,5);
				since_fired=0;
				fired = false;
				if (debug_fire){m_usb_tx_string(" its been 100 sec\n\r");}
			} 
			if ( fire && check(PINB,3)){ 
				fire=false; 
				fired=true; 
				since_fired=0;
				if (debug_fire){m_usb_tx_string(" portb 3 is high\n\r");}
			}
			
//			m_rf_open(chan,RX_add,p_length);
			m_green(TOGGLE);
			m_rf_init();
			if ( timer_3_cnt == 10){
				m_red(2);
				timer_3_cnt=0;
				m_rf_open(chan,RX_add,p_length);
			}
		}
		if(new){ turretDrive();
			if(RF_debug){ debug_rf(); }
			if ((receive_buffer[0] == 1 || receive_buffer[1]==1) && !fire){FIRE();}
		}
		//TODO fill in timer code for the firing mechanism
	}
}