#include "seduce.h" #include "shift_register_internal.h" #include #include void avr_shift_register_destroy(ShiftRegisterHandle shiftRegisterHandle) { free((ShiftRegister*) shiftRegisterHandle); } void avr_shift_register_clock_pulse(ShiftRegisterHandle shiftRegisterHandle) { ShiftRegister* sr = (ShiftRegister*) shiftRegisterHandle; data_position_set_port(sr->clockPulse); _delay_ms(1); data_position_reset_port(sr->clockPulse); } void avr_shift_register_enable_clock(ShiftRegisterHandle shiftRegisterHandle) { ShiftRegister* sr = (ShiftRegister*) shiftRegisterHandle; data_position_set_port(sr->clockEnable); sr->clockEnabled = 1; } void avr_shift_register_disable_clock(ShiftRegisterHandle shiftRegisterHandle) { ShiftRegister* sr = (ShiftRegister*) shiftRegisterHandle; data_position_reset_port(sr->clockEnable); sr->clockEnabled = 0; }