#include "seduce.h" #include "shift_register_internal.h" #include #include const ShiftRegister avr_shift_register_create( ShiftRegisterTypeHeader type, const DataPosition clockEnable, const DataPosition clockPulse, int waitTime ) { ShiftRegister sr = { type, clockEnable, clockPulse, waitTime }; return sr; } void avr_shift_register_clock_pulse(ShiftRegister shiftRegister) { data_position_set_port(shiftRegister.clockPulse); sleep(shiftRegister.waitTime); data_position_reset_port(shiftRegister.clockPulse); sleep(shiftRegister.waitTime); } void avr_shift_register_enable_clock(ShiftRegister shiftRegister) { data_position_set_port(shiftRegister.clockEnable); } void avr_shift_register_disable_clock(ShiftRegister shiftRegister) { data_position_reset_port(shiftRegister.clockEnable); }