Beispiel #1
0
void main(void)
{
	uart_init(LOG_PORT, BAUD_CALC(115200));
	uart_init(COMMAND_PORT, BAUD_CALC(115200));
	sei();
	int i = -255;
	char c;
	//write_motors(COMMAND_PORT, 200, 200);
//	go(240, 240);
//	go(5, 10);
//	_delay_ms(1000);
//	go(-200, -200);

	while (1)
	{
	go (127, 127);
//		i++;
//		go(i, i);
//		if (i >= 255)
//			i = -255;
//		_delay_ms(20);
	}
} 
Beispiel #2
0
int main(void)
{
	/*init all the things*/
	motors_init(PHASE_CORRECT, PRESCALE_8);
	uart_init(BAUD_CALC(9600));
	sei();
	adc_init();
	wdt_init(WDTO_500MS);
	/********************/
	go(0, 0);
	uart_putc(ACK);
	over_current_a = 0;
	over_current_b = 0;
	while (1)
	{
		current_a = analog_read(C_SENS_A);
		current_b = analog_read(C_SENS_B);

		req_t = get_request_type();
		if (req_t == CURRENT_REQ)
		{	
			write_current(current_a, current_b);
		}
		else if (req_t == MOTORS_SET)
		{
			read_motors(&speed_a, &speed_b);
			wdt_reset();
		}
		
		//manage current sens
		#ifdef CURRENT_LIMIT
		if ((current_a < CURRENT_LIMIT) && (current_b < CURRENT_LIMIT))
		{
			go(speed_a, speed_b);
			over_current_a = over_current_b = 0;
		}
		else
		{
			//overcurrent
			go(0, 0);
			uart_putc('!');
			over_current_a = current_a - CURRENT_LIMIT;
			over_current_b = current_b - CURRENT_LIMIT;
		}
		#endif
	}
	return (0);
}
Beispiel #3
0
int main(void)
{
	//BA
	//set_motors(PHASE_CORRECT, PRESCALE_8);
	uart_init(COMMAND_PORT, BAUD_CALC(57600));
	sei();
	int16_t speed = 30;
	int8_t crement = 1;
	while (1)
	{
		if ((speed >= MAXSPEED) || (speed <= MINSPEED))
		{
			crement *= -1;
		}
		speed += crement;
		go(speed, speed);
		_delay_ms(5);
	}
}
Beispiel #4
0
int  main(void)
{
	//uart_set_FrameFormat(USART_8BIT_DATA|USART_1STOP_BIT|USART_NO_PARITY|USART_ASYNC_MODE); // default settings
	uart_init(BAUD_CALC(115200)); // 8n1 transmission is set as default
	
	stdout = &uart0_io; // attach uart stream to stdout & stdin
	stdin = &uart0_io; // uart0_in if no TX and uart0_out if no RX (depends on config macros)
	
	sei(); // enable interrupts, library wouldn't work without this
		
	uart_puts("hello from usart 0\r\n"); // write const string to usart buffer // C++ restriction, in C its the same as uart_putstr()
	//uart_puts("hello world\r\n"); // write const string to usart buffer // C++ restriction, in C its the same as uart_putstr()
	// if you do not have enough SRAM memory space to keep all strings, try to use puts_P instead
	uart_puts_P("hello from flashed, usart\r\n"); // write string to usart buffer from flash memory // string is parsed by PSTR() macro
	
		_delay_ms(5000);
	
	
	uart_puts_p(foo_string);
	
		
	char buffer[25];
	uart_gets(buffer, 25); // read at most 24 bytes from buffer (CR,LF will not be cut)
	
	
	int a;
	
	uart_puts("gimmie a number: ");
	a = uart_getint();
	
	
	uart_puts("numba a: ");
	uart_putint(a);
	uart_puts("\r\n");
	
	
	while(1)
	{
		uart_puts("bytes waiting in receiver buffer : ");
		uart_putint(uart_AvailableBytes()); // ask for bytes waiting in receiver buffer
		
		
		//uart_getsln(buffer, 25); // read 24 bytes or one line from usart buffer 
		
		
		if (!strcmp(buffer, "people who annoy you"))
		{
			uart_putc('>');
			_delay_ms(5000);
			uart_puts_P(" naggers");
		}
		
		
		uart_puts("\r\n");
		
		/*
		uart_putfloat(0.1337f);
		
		
		uart_puts("\r\n");
		uart_putstr(buffer); // write array string to usart buffer 
		uart_puts("\r\n");
		
		
		printf("Say my name: ");
		scanf("%s", buffer);
		
		printf("So it's %s, You are damn' right.\n", buffer);
		
		_delay_ms(5000);
		
		*/	
		
	}
	
}