Пример #1
0
int main(void)
{
	unsigned int value = 0;
	
	// GPIO初期化
	if( ! rpi_gpio_init() )
		return -1;
	
	led_init();
	
	for( value = 0; value < 10; value++ ) {
		printf("LED = %d\n", value );
		led_put(value);
		sleep(1);
	}
	// mmap開放
	rpi_gpio_deinit();
	
	return 1;
}
Пример #2
0
int main(int argc, char * argv[])
{
	uint8_t rx[64];
	char buff[256];
	uint8_t length;
	uint8_t address;
	uint8_t status;
	int i;
	
	rpi_gpio_init();
	cc1101_init();
	status = cc1101_read_status();
	if (status != 0x0F)
	{
		cc1101_strobe(CC1101_STROBE_SIDLE, CC1101_WRITE_SINGLE);
	}
	printf("status ok\n\r");
	if(argc > 1)
	{
		printf("argv: %s\n\r", argv[1]);
		if(!strcmp(argv[1], "-w"))
		{
			if(strlen(argv[2]) == 2)
			{
				strcpy(buff, argv[2]);
			} else {
				printf("Adress too short\n\r");
				return 0;
			}
			// translate from ascii hex value to raw value
			for(i=0;i<2;i++)
			{
				if(buff[i] > 0x40 && buff[i] < 0x47)
				{
					address += (buff[i] - 55)<<((1-i)*4);
				}
				else if (buff[i] > 0x2F && buff[i] < 0x3A)
				{
					address += (buff[i]-0x30)<<((1-i)*4); //shift
				}
				else
				{
					printf("Not a hex number. %.02X\n\r", buff[i]);
					return 0;
				}
			}
			printf("Address: 0x%.02X\n\r", address);
			strcpy(buff, argv[3]);
			length = strlen(buff) + 1;
			printf("Length: %d\n\r", length);
			cc1101_send_msg(length, address, buff);
			cc1101_tx_end_wait();
		} else if (!strcmp(argv[1], "-r")) {
			cc1101_start_rx();
			printf("Rx mode started. Waiting...\n\r");
			while(length == 0)
			{
				do
				{
				}while(!READ_GD02);
				cc1101_rd_burst(CC1101_STROBE_SFTX, &length, 1); //read byte count RX_FIFO
			}
			cc1101_rd_burst(CC1101_RX_FIFO, rx,length);
			rx[length] = '\0';
			printf("Received Message:\n\r%s\n\r", rx);
		}

	} else {
		printf("Not enough arguments. Try again.\n\r");
	}
}