예제 #1
0
void jshPinOutput(Pin pin, bool value) {
  if (jshIsPinValid(pin)) {
    if (!jshGetPinStateIsManual(pin))
      jshPinSetState(pin, JSHPINSTATE_GPIO_OUT);
    jshPinSetValue(pin, value);
  } else jsExceptionHere(JSET_ERROR, "Invalid pin!");
}
예제 #2
0
bool jshPinInput(Pin pin) {
  bool value = false;
  if (jshIsPinValid(pin)) {
    if (!jshGetPinStateIsManual(pin))
      jshPinSetState(pin, JSHPINSTATE_GPIO_IN);

    value = jshPinGetValue(pin);
  } else jsExceptionHere(JSET_ERROR, "Invalid pin!");
  return value;
}
예제 #3
0
JshPinFunction jshPinAnalogOutput(Pin pin, JsVarFloat value, JsVarFloat freq, JshAnalogOutputFlags flags) {
  /* we set the bit field here so that if the user changes the pin state
   * later on, we can get rid of the IRQs */
  if (!jshGetPinStateIsManual(pin)) {
    BITFIELD_SET(jshPinSoftPWM, pin, 0);
    jshPinSetState(pin, JSHPINSTATE_GPIO_OUT);
  }
  BITFIELD_SET(jshPinSoftPWM, pin, 1);
  if (freq<=0) freq=50;
  jstPinPWM(freq, value, pin);
  return JSH_NOTHING;
} // if freq<=0, the default is used