void led__toggle(void) { PORT_REG(SIGNAL_PORT(LED)) ^= SIGNAL_MASK(LED); }
} void modbus_server__on_valid_frame_received(void) { ++valid_frames_received; } void modbus_server__on_invalid_frame_received(void) { ++invalid_frames_received; } /** * Handle reading of holding registers. */ modbus_exception modbus_server__read_coils(void) { buffer__put_u8((PORT_REG(OUT__LEDS__PORT) & (SIGNAL_MASK(OUT__LED1) | SIGNAL_MASK(OUT__LED2) | SIGNAL_MASK(OUT__LED3))) >> OUT__LED1__PIN); return MODBUS_EXCEPTION__NONE; } /** * Handle writing of single coil (output LEDs/relays). */ modbus_exception modbus_server__write_single_coil(uint16_t address, uint8_t active) { if (address == 0) { led1__set(active); } else if (--address == 0) { led2__set(active);