Wire.end (); // does this command exist?
no,
think you can solve it this way (it won't interfere with Wire as far as I can see)
void wakeSensor ()
{
int pm = getPinMode(sensorWakePin); // not existing -> see below
pinMode (sensorWakePin, OUTPUT);
digitalWrite (sensorWakePin, LOW);
delay (1);
digitalWrite (sensorWakePin, HIGH);
delay (1);
pinMode (sensorWakePin, pm);
}
int getPinMode(uint8_t pin)
{
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *reg, *out;
if (port == NOT_A_PIN) return -1;
// JWS: can I let the optimizer do this?
reg = portModeRegister(port);
out = portOutputRegister(port);
if ((~*reg & bit) == bit) // INPUT OR PULLUP
{
if ((~*out & bit) == bit) return INPUT;
else return INPUT_PULLUP;
}
return OUTPUT;
}