Esempio n. 1
0
/* setup and enable serial interrupts */
void serial_init()
{
   serial_stop();

   /* rx pin setup */
   cbi(DDRD, 0); /* set pin input */
   cbi(PORTD,0); /* enable input pin pull-up */

	/* USART init code */
	UCSRB = 0x18; /* RX and TX enable, interrupts */
	UCSRC = 0x8E; /* no parity, 1 stop, 8bit */
	UBRRH = 0x00; /* high byte, serial divisor */
   /*UBRRL = 0x67; /* low byte, serial divisor. 9600 baud */
   UBRRL = 0x63; /* low byte, serial divisor. 10000 baud */

   /* buffer init */
   tx_head = 0;
   tx_size = 0;
   rx_head = 0;
   rx_size = 0;
   

	/* set the USART_RXC interrupt enable bit */
	sbi(UCSRB, 7);
}
Esempio n. 2
0
int main(int argc, char *argv[]) 
{
	struct serialsosurce ss;
	serial_start(&ss);
#define OPEN  1
#define CLOSE 0

	while (1) {
	//	controller_set(&ss, 120, CLOSE);

	//	int status;
	//	controller_get(&ss, 120, &status);

	//	printf("controller %d status is %d\n", 120, status);

	//	sleep(3);
	
	//	controller_set(&ss, 120, CLOSE);
	//	sleep(3);

	//	sensor_set(&ss, 20, 100);
	//	int status;
	//	sensor_get(&ss, 20, &status);

	//	printf("sensor %d status is %d\n", 20, status);
	//	
	//	sleep(3);

		struct sensorX sx;
		int id[] = {1, 10, 20, 40};
		int data[] = {10, 20, 30, 40};
		
		sensorX_init(&sx, sizeof(id)/sizeof(int), id, data);
		sensorX_set(&ss, &sx);

		struct sensorX sx_test;
		int id2[] = {1, 10, 20, 40};
		sensorX_init(&sx_test, sizeof(id2)/sizeof(int), id2, NULL);
		sensorX_get(&ss, &sx_test);
	
		printf("Sensor Data:\n");
		printf("=========================\n");
		int i;
		for (i = 0; i < sx_test.n; i++) {
			printf("sensor id[%d] = %d\n", sx_test.id[i], sx_test.data[i]);
		}
		printf("=========================\n");
	
		sleep(3);
	}

	while (1) getchar();
	serial_stop(&ss);

	return 0;
}
Esempio n. 3
0
int main(int argc, char * argv[])
{
	if (argc < 2) {
		fprintf(stderr, "Usage: %s device\n", argv[0]);
		exit(1);
	}

	int fd = serial_init(argv[1]);
	if (fd == -1) {
		exit(1);
	}

	unsigned int data[8];

	for (;;) {
		if (serial_get_data(fd, data)) {
			printf("%5u %5u %5u %5u %5u %5u %5u %5u\n",
				data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
		}
	}

	serial_stop(fd);
	return 0;
}