int main() { Button button; struct counter_data data = { (ShiftRegister){12, 10, 11}, 0 }; shift_register_init(&data.reg); shift_register_set(&data.reg, 1); button_init(&button); button.pin = 7; button.closed_on = LOW; button.debounce_delay = 10; button.hold_delay = 250; button.toggle_callback = &toggled; button.hold_callback = &hold; button.data = &data; pin_set_mode(7, INPUT); pin_set_value(7, PULLUP); // enable the internal pull-up resistor while(true) { button_check(&button); delay_ms(1); // TODO do not depend on delaying } return 0; }
/** * Устанавливает логическое значение на шине 1-wire. */ ALWAYS_INLINE static void one_wire_set_value(one_wire_t* ow, uint8_t value) { pin_set_value(&ow->pin, value); }