Пример #1
0
void Device::SetupDevice(bool Debug, int PinNumber, bool Digital, bool Input, int MinValue, int MaxValue, int InitialValue, int StepValue, bool StepDirectionUp, int DelayToChange)
{
	//Serial.println("Device Setup");
	pinNumber = PinNumber;
	digital = Digital;
	input = Input;
	maxValue = MaxValue;
	minValue = MinValue;
	delayToChangeValue = DelayToChange;
	lastUpdated = millis();
	stepValue = StepValue;
	stepDirectionUp = StepDirectionUp;
	currentValue = InitialValue;

	//Setup PIN Mode
	pinMode(pinNumber,getPinMode());

}
Пример #2
0
void resetPinMode(int pin)
{
    if (pin >= 0 && pin < NUM_DIGITAL_PINS) {
        PinMode mode = getPinMode(pin);
        switch (mode) {
        case PinModeUnused:
            break;
        case PinModeInput:
            if (resetPinModeInput != NULL) {
                resetPinModeInput(pin);
            }
            goto change;
        case PinModeOutput:
            if (resetPinModeOutput != NULL) {
                resetPinModeOutput(pin);
            }
            goto change;
        case PinModeInputPullUp:
            if (resetPinModeInputPullUp != NULL) {
                resetPinModeInputPullUp(pin);
            }
            goto change;
        case PinModeOutputHigh:
            if (resetPinModeOutputHigh != NULL) {
                resetPinModeOutputHigh(pin);
            }
            goto change;
        case PinModeOutputOpenDrain:
            if (resetPinModeOutputOpenDrain != NULL) {
                resetPinModeOutputOpenDrain(pin);
            }
            goto change;
        case PinModeAnalogRead:
            if (resetPinModeAnalogRead != NULL) {
                resetPinModeAnalogRead(pin);
            }
            goto change;
        case PinModeAnalogWrite:
            if (resetPinModeAnalogWrite != NULL) {
                resetPinModeAnalogWrite(pin);
            }
            goto change;
        case PinModeTone:
            if (resetPinModeTone != NULL) {
                resetPinModeTone(pin);
            }
            goto change;
        case PinModeServo:
            if (resetPinModeServo != NULL) {
                resetPinModeServo(pin);
            }
            goto change;
        case PinModeDac:
            if (resetPinModeDac != NULL) {
                resetPinModeDac(pin);
            }
            goto change;
        case PinModeOther:
            if (resetPinModeOther != NULL) {
                resetPinModeOther(pin);
            }
          change:
            changePinMode(pin, PinModeUnused);
            break;
        default:
            break;
        }
    }
}