From 62389e00fed49b7b89f465c9cd6bb586502331be Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 23 Dec 2018 12:57:40 +0900 Subject: ADC working --- common/8b10b.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 common/8b10b.h (limited to 'common/8b10b.h') diff --git a/common/8b10b.h b/common/8b10b.h new file mode 100644 index 0000000..1028210 --- /dev/null +++ b/common/8b10b.h @@ -0,0 +1,42 @@ +#ifndef __8B10B_H__ +#define __8B10B_H__ + +#include +#include +#include + +enum k_code { + K28_0=1, K28_1, K28_2, K28_3, + K28_4, K28_5, K28_6, K28_7, + K23_7, K27_7, K29_7, K30_7, + K_CODES_LAST +}; + +enum decoder_return_codes { + _K_CODES_LAST = K_CODES_LAST, + DECODING_ERROR, + DECODING_IN_PROGRESS, + DECODER_RETURN_CODE_LAST +}; + +struct entry { + uint8_t rd_neg, rd_pos, disp; +}; + +struct state_8b10b_dec { + uint32_t rx; + int bit_ctr; +}; + +struct state_8b10b_enc { + int rd; +}; + +void xfr_8b10b_reset(struct state_8b10b_dec *st); +int xfr_8b10b_feed_bit(struct state_8b10b_dec *st, int bit); +bool xfr_8b10b_has_sync(struct state_8b10b_dec *st); + +void xfr_8b10b_encode_reset(struct state_8b10b_enc *st); +int xfr_8b10b_encode(struct state_8b10b_enc *st, int data); + +#endif -- cgit