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; }
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"); } }