Exemple #1
0
int main()
{
	gpio *gpio_led;

	gpio_led = libsoc_gpio_request(GPIO_LED, LS_SHARED);
    
	if ((gpio_led == NULL)) {
		fprintf(stderr, "Unable to request GPIOs\n");
        	goto fail;
	}

	libsoc_gpio_set_direction(gpio_led, OUTPUT);

	if ((libsoc_gpio_get_direction(gpio_led) != OUTPUT)) {
		fprintf(stderr, "Unable to set led/btn directions\n");
		goto fail;
	}
	
	while (1) {
		libsoc_gpio_set_level(gpio_led, 1);
		usleep(500000);
		libsoc_gpio_set_level(gpio_led, 0);
		usleep(500000);
    }

fail:
	if (gpio_led)
		libsoc_gpio_free(gpio_led);

    return EXIT_SUCCESS;
}
Exemple #2
0
int main(void) {
  // Enable debug output
  libsoc_set_debug(1);

  // Request gpios
  gpio_output = libsoc_gpio_request(GPIO_OUTPUT, LS_SHARED);
  gpio_input = libsoc_gpio_request(GPIO_INPUT, LS_SHARED);

  // Set direction to OUTPUT
  libsoc_gpio_set_direction(gpio_output, OUTPUT);
  
  // Set direction to INPUT
  libsoc_gpio_set_direction(gpio_input, INPUT);

  // Set edge to BOTH
  libsoc_gpio_set_edge(gpio_input, BOTH);

  // Setup callback
  libsoc_gpio_callback_interrupt(gpio_input, &callback_test, 
                      (void*) &interrupt_count);
  
  printf("Push the button...\n"); 
  // Disaple debug output so the code will respond faster
  libsoc_set_debug(0);

  sleep(10);
  
  libsoc_set_debug(1);
 
  // Cancel the callback on interrupt
  libsoc_gpio_callback_interrupt_cancel(gpio_input);
  
  //If gpio_request was successful
  if (gpio_input) { // Free gpio request memory
    libsoc_gpio_free(gpio_input);
  }
  
  if (gpio_output) { // Free gpio request memory
    libsoc_gpio_free(gpio_output);
  }
  
  return EXIT_SUCCESS;
}