Exemplo n.º 1
0
void main()
{
	uart_init(9600);
	vt_init();

	sonar_t so;
	sonar_t so2;

	sonar_init(&so, A0, A1);
	sonar_init(&so2, A2, A3);

	sei();

	// end
	int16_t res;
	while(1) {
		vt_clear();
		vt_home();
		uart_puts_pgm(PSTR("SONAR\r\n==================="));

		// first
		vt_goto(99, 99); // move cursor away
		sonar_start(&so);
		while(sonar_busy());
		res = sonar_result();

		// print value
		vt_goto(0, 2);
		uart_puts_pgm(PSTR("A: "));

		if (res < 0) {
			uart_puts_pgm(PSTR("No Obstacle"));
		} else {
			uart_puti(res, 1);
			uart_puts_pgm(PSTR(" cm"));
		}

		// second
		vt_goto(99, 99); // move cursor away
		sonar_start(&so2);
		while(sonar_busy());
		res = sonar_result();

		// print value
		vt_goto(0, 3);
		uart_puts_pgm(PSTR("B: "));

		if (res < 0) {
			uart_puts_pgm(PSTR("No Obstacle"));
		} else {
			uart_puti(res, 1);
			uart_puts_pgm(PSTR(" cm"));
		}

		vt_goto(99, 99); // move cursor away
		_delay_ms(200);
	}
}
Exemplo n.º 2
0
    } payload;
} train_req;

CHAR_BUFFER(128)
static int train_server_tid;

static void __attribute__((noreturn)) train_server_ui() {
    train_req req = {
        .type = UI
    };

    int bytes[2];

    char twirl = '|';
    char buffer[64];
    char* ptr = vt_goto(buffer, TRAIN_BANDWIDTH_ROW, TRAIN_BANDWIDTH_COL);
    ptr = sprintf(ptr,
                  "TRAIN    0 B/s Up    0 B/s Down %c",
                  (twirl = ui_twirl(twirl)));
    Puts(buffer, ptr - buffer);


    FOREVER {
        Delay(100);

        int result = Send(train_server_tid,
                          (char*)&req, sizeof(treq_type),
                          (char*)bytes, sizeof(bytes));
        if (result < 0)
            ABORT("Failed to send to train server (%d)", result);