예제 #1
0
파일: gpio.c 프로젝트: lolsborn/WiringPi
static void doReadall (void)
{
  int pin ;

  printf ("+----------+------+--------+-------+\n") ;
  printf ("| wiringPi | GPIO | Name   | Value |\n") ;
  printf ("+----------+------+--------+-------+\n") ;

  for (pin = 0 ; pin < NUM_PINS ; ++pin)
    printf ("| %6d   | %3d  | %s | %s  |\n",
	pin, wpiPinToGpio (pin),
	pinNames [pin], 
	digitalRead (pin) == HIGH ? "High" : "Low ") ;

  printf ("+----------+------+--------+-------+\n") ;

  if (piBoardRev () == 1)
    return ;

  for (pin = 17 ; pin <= 20 ; ++pin)
    printf ("| %6d   | %3d  | %s | %s  |\n",
	pin, wpiPinToGpio (pin),
	pinNames [pin], 
	digitalRead (pin) == HIGH ? "High" : "Low ") ;

  printf ("+----------+------+--------+-------+\n") ;
}
예제 #2
0
static void doReadall (void)
{
  int pin ;

  if (wiringPiNodes != NULL)	// External readall
    doReadallExternal () ;
  else
  {
    printf ("+----------+-Rev%d-+------+--------+------+-------+\n", piBoardRev ()) ;
    printf ("| wiringPi | GPIO | Phys | Name   | Mode | Value |\n") ;
    printf ("+----------+------+------+--------+------+-------+\n") ;

    for (pin = 0 ; pin < 64 ; ++pin)	// Crude, but effective
    {
      if (wpiPinToGpio (pin) == -1)
	continue ;

      printf ("| %6d   | %3d  | %3d  | %s | %s | %s  |\n",
	  pin, wpiPinToGpio (pin), wpiToPhys [pin],
	  pinNames [pin], 
	  alts [getAlt (pin)], 
	  digitalRead (pin) == HIGH ? "High" : "Low ") ;
    }

    printf ("+----------+------+------+--------+------+-------+\n") ;
  }
}
예제 #3
0
파일: 433gpio.c 프로젝트: 1000io/pilight
unsigned short gpio433HwDeinit(void) {
	FILE *fd;
	if(gpio_433_initialized) {
		if((fd = fopen ("/sys/class/gpio/unexport", "w"))) {
			fprintf(fd, "%d", wpiPinToGpio(gpio_433_out));
			fclose(fd);
		}
		if((fd = fopen ("/sys/class/gpio/unexport", "w"))) {
			fprintf(fd, "%d", wpiPinToGpio(gpio_433_in));
			fclose(fd);
		}
	}
	return EXIT_SUCCESS;
}
예제 #4
0
static foreign_t
pl_wpiPinToGpio (term_t wPiPin_,term_t t){
	int wPiPin;	
	if (!PL_get_integer(wPiPin_,&wPiPin))
	{
		PL_warning("Argument 'wPiPin' not number");
		PL_fail;
	}
	return PL_unify_integer(t,wpiPinToGpio(wPiPin));
}
예제 #5
0
static void doReadall (void)
{
  int pin ;

  printf ("+----------+------+--------+------+-------+\n") ;
  printf ("| wiringPi | GPIO | Name   | Mode | Value |\n") ;
  printf ("+----------+------+--------+------+-------+\n") ;

  for (pin = 0 ; pin < 64 ; ++pin)
  {
    if (wpiPinToGpio (pin) == -1)
      continue ;

    printf ("| %6d   | %3d  | %s | %s | %s  |\n",
	pin, wpiPinToGpio (pin),
	pinNames [pin], 
	alts [getAlt (pin)], 
	digitalRead (pin) == HIGH ? "High" : "Low ") ;
  }

  printf ("+----------+------+--------+------+-------+\n") ;
}
예제 #6
0
/* wpiPinToGpio
 *
 * Parameters:
 * - wpiPin: int
 * Return Type: int
 */
mrb_value
mrb_Pi_wpiPinToGpio(mrb_state* mrb, mrb_value self) {
  mrb_int native_wpiPin;

  /* Fetch the args */
  mrb_get_args(mrb, "i", &native_wpiPin);

  /* Invocation */
  int result = wpiPinToGpio(native_wpiPin);

  /* Box the return value */
  mrb_value return_value = mrb_fixnum_value(result);

  return return_value;
}
예제 #7
0
static void doReset (char *progName)
{
  int pin ;

  doUnexportall (progName) ;

  for (pin = 0 ; pin < 64 ; ++pin)
  {
    if (wpiPinToGpio (pin) == -1)
      continue ;

    digitalWrite    (pin, LOW) ;
    pinMode         (pin, INPUT) ;
    pullUpDnControl (pin, PUD_OFF) ;
  }
}
예제 #8
0
파일: gpio.c 프로젝트: LeMaker/WiringLMK
static void doReset (char *progName)
{
    int pin ;

    if (wiringPiNodes != NULL)	// External reset
        doResetExternal () ;
    else
    {
        doUnexportall (progName) ;

        for (pin = 0 ; pin < 64 ; ++pin)
        {
            if (wpiPinToGpio (pin) == -1)
                continue ;

            digitalWrite    (pin, LOW) ;
            pinMode         (pin, INPUT) ;
            pullUpDnControl (pin, PUD_OFF) ;
        }
    }
}
예제 #9
0
/**
 * --------------------------------------------------------
 * GET EDGE GPIO PIN
 * --------------------------------------------------------
 */
int getEdgePin(int pin)
{
    int model, rev, mem, maker, overVolted ;

	// validate lower bounds
	if(pin < 0)
		return -1;

	// validate upper bounds
	if(pin >= MAX_GPIO_PINS)
		return -1;

	// return the edge pin index
	// (will return -1 for invalid pin)
    piBoardId (&model, &rev, &mem, &maker, &overVolted) ;
    if (model == PI_MODEL_CM){
        return pin;
    }
    else{
        return wpiPinToGpio(pin);
    }
}