void SetDigitalOutLevel(int pin, int value) { log_printf("SetDigitalOutLevel(%d, %d)", pin, value); SAVE_PIN_FOR_LOG(pin); BYTE prev = SyncInterruptLevel(4); PinSetLat(pin, value); SyncInterruptLevel(prev); }
void SetDigitalOutLevel(int pin, int value) { heartbeat(); //ANDROID THERMOSTAT MOD log_printf("SetDigitalOutLevel(%d, %d)", pin, value); SAVE_PIN_FOR_LOG(pin); BYTE prev = SyncInterruptLevel(4); PinSetLat(pin, value); SyncInterruptLevel(prev); }
void SetPinDigitalOut(int pin, int value, int open_drain) { log_printf("SetPinDigitalOut(%d, %d, %d)", pin, value, open_drain); SAVE_PIN_FOR_LOG(pin); ADCSetScan(pin, 0); PinSetAnsel(pin, 0); PinSetRpor(pin, 0); PinSetCnen(pin, 0); PinSetCnpu(pin, 0); PinSetCnpd(pin, 0); PinSetLat(pin, value); PinSetOdc(pin, open_drain); PinSetTris(pin, 0); }
void SetPinCapSense(int pin) { log_printf("SetPinCapSense(%d)", pin); SAVE_PIN_FOR_LOG(pin); // In cap-sense mode, the pin is configured for analog input, but initially // pulling low in order to discharge, the circuit. PinSetRpor(pin, 0); PinSetCnen(pin, 0); PinSetCnpu(pin, 0); PinSetCnpd(pin, 0); PinSetAnsel(pin, 1); PinSetLat(pin, 0); PinSetTris(pin, 1); }
void SetPinDigitalOut(int pin, int value, int open_drain) { log_printf("SetPinDigitalOut(%d, %d, %d)", pin, value, open_drain); SAVE_PIN_FOR_LOG(pin); // Protect from the user trying to use push-pull, later pulling low using the // bootloader pin. if (pin == 0) open_drain = 1; PinSetAnsel(pin, 0); PinSetRpor(pin, 0); PinSetCnen(pin, 0); PinSetCnpu(pin, 0); PinSetCnpd(pin, 0); PinSetLat(pin, value); PinSetOdc(pin, open_drain); PinSetTris(pin, 0); }