~ruther/avr-shift-registers

ref: 67cde4955cfd8a7717372d7084c080de2b29e1b0 avr-shift-registers/src/sr/shift_register.c -rw-r--r-- 868 bytes
67cde495 — František Boháček chore: update README 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "seduce.h"
#include "shift_register_internal.h"
#include <util/delay.h>
#include <stdlib.h>

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);
}