File syn_shiftreg.h¶
FileList > drivers > syn_shiftreg.h
Go to the source code of this file
Generic Shift Register Driver (74HC595 Output Expander & 74HC165 Input Expander).
#include "../common/syn_defs.h"#include "../port/syn_port_gpio.h"#include <stdbool.h>#include <stddef.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_ShiftRegIn Input Shift Register Context. |
| struct | SYN_ShiftRegOut Output Shift Register Context. |
Public Functions¶
| Type | Name |
|---|---|
| bool | syn_shiftreg_in_get_bit (const SYN_ShiftRegIn * sr, uint16_t bit_index) Get logical state of a specific sampled input pin. |
| uint8_t | syn_shiftreg_in_get_byte (const SYN_ShiftRegIn * sr, uint8_t chip_index) Get sampled byte for a specific chip in the chain. |
| SYN_Status | syn_shiftreg_in_init (SYN_ShiftRegIn * sr, SYN_GPIO_Pin data_pin, SYN_GPIO_Pin clock_pin, SYN_GPIO_Pin load_pin, uint8_t num_chips) Initialize an Input Shift Register (74HC165). |
| void | syn_shiftreg_in_read (SYN_ShiftRegIn * sr) Pulse Parallel Load pin and clock in all input bits from hardware. |
| void | syn_shiftreg_in_set_bit_order (SYN_ShiftRegIn * sr, bool msb_first) Set bit order mode for input sampling. |
| void | syn_shiftreg_out_flush (SYN_ShiftRegOut * sr) Atomically flush buffer contents to physical hardware output pins. |
| SYN_Status | syn_shiftreg_out_init (SYN_ShiftRegOut * sr, SYN_GPIO_Pin data_pin, SYN_GPIO_Pin clock_pin, SYN_GPIO_Pin latch_pin, uint8_t num_chips) Initialize an Output Shift Register (74HC595). |
| void | syn_shiftreg_out_set_bit (SYN_ShiftRegOut * sr, uint16_t bit_index, bool state) Set logical state of a single pin in the shift register chain. |
| void | syn_shiftreg_out_set_bit_order (SYN_ShiftRegOut * sr, bool msb_first) Set bit order mode. |
| void | syn_shiftreg_out_set_enable (SYN_ShiftRegOut * sr, bool enable) Enable or disable outputs via Output Enable (OE) pin. |
| void | syn_shiftreg_out_set_oe_pin (SYN_ShiftRegOut * sr, SYN_GPIO_Pin oe_pin) Configure optional Output Enable (OE) pin. |
| void | syn_shiftreg_out_write_byte (SYN_ShiftRegOut * sr, uint8_t chip_index, uint8_t val) Set raw byte for a specific chip in the chain. |
Macros¶
| Type | Name |
|---|---|
| define | SYN_SHIFTREG_MAX_CHIPS 8 |
Public Functions Documentation¶
function syn_shiftreg_in_get_bit¶
Get logical state of a specific sampled input pin.
Parameters:
srShift register context.bit_indexPin index (0 to num_chips*8 - 1).
Returns:
Logical state (true/false).
function syn_shiftreg_in_get_byte¶
Get sampled byte for a specific chip in the chain.
Parameters:
srShift register context.chip_indexChip index (0 to num_chips-1).
Returns:
8-bit byte value.
function syn_shiftreg_in_init¶
Initialize an Input Shift Register (74HC165).
SYN_Status syn_shiftreg_in_init (
SYN_ShiftRegIn * sr,
SYN_GPIO_Pin data_pin,
SYN_GPIO_Pin clock_pin,
SYN_GPIO_Pin load_pin,
uint8_t num_chips
)
Parameters:
srShift register context.data_pinSerial Data In GPIO pin.clock_pinShift Clock GPIO pin.load_pinParallel Load GPIO pin.num_chipsNumber of cascaded 8-bit chips (1 to 8).
Returns:
SYN_OK on success.
function syn_shiftreg_in_read¶
Pulse Parallel Load pin and clock in all input bits from hardware.
Parameters:
srShift register context.
function syn_shiftreg_in_set_bit_order¶
Set bit order mode for input sampling.
Parameters:
srShift register context.msb_firstTrue for MSB-first, false for LSB-first.
function syn_shiftreg_out_flush¶
Atomically flush buffer contents to physical hardware output pins.
Parameters:
srShift register context.
function syn_shiftreg_out_init¶
Initialize an Output Shift Register (74HC595).
SYN_Status syn_shiftreg_out_init (
SYN_ShiftRegOut * sr,
SYN_GPIO_Pin data_pin,
SYN_GPIO_Pin clock_pin,
SYN_GPIO_Pin latch_pin,
uint8_t num_chips
)
Parameters:
srShift register context.data_pinSerial Data GPIO pin.clock_pinShift Clock GPIO pin.latch_pinLatch / Storage Clock GPIO pin.num_chipsNumber of cascaded 8-bit chips (1 to 8).
Returns:
SYN_OK on success.
function syn_shiftreg_out_set_bit¶
Set logical state of a single pin in the shift register chain.
Parameters:
srShift register context.bit_indexPin index (0 to num_chips*8 - 1).stateLogical state.
function syn_shiftreg_out_set_bit_order¶
Set bit order mode.
Parameters:
srShift register context.msb_firstTrue for MSB-first, false for LSB-first.
function syn_shiftreg_out_set_enable¶
Enable or disable outputs via Output Enable (OE) pin.
Parameters:
srShift register context.enableTrue to enable outputs (OE LOW).
function syn_shiftreg_out_set_oe_pin¶
Configure optional Output Enable (OE) pin.
Parameters:
srShift register context.oe_pinOutput Enable GPIO pin.
function syn_shiftreg_out_write_byte¶
Set raw byte for a specific chip in the chain.
Parameters:
srShift register context.chip_indexChip index (0 to num_chips-1).val8-bit byte value.
Macro Definition Documentation¶
define SYN_SHIFTREG_MAX_CHIPS¶
The documentation for this class was generated from the following file src/syntropic/drivers/syn_shiftreg.h