From 3d723d04b3630a6fb3f5f0960a0448ed964f0b2e Mon Sep 17 00:00:00 2001 From: Christoph Rackwitz Date: Mon, 18 Sep 2017 21:16:38 +0200 Subject: [PATCH] graycode: examples --- graycode/synthetic/README | 7 +++++++ graycode/synthetic/graycode-ramp.sr | Bin 0 -> 22564 bytes graycode/synthetic/graycode-sin.sr | Bin 0 -> 4949 bytes graycode/synthetic/rotary-ramp.sr | Bin 0 -> 5996 bytes graycode/synthetic/rotary-sin.sr | Bin 0 -> 4078 bytes 5 files changed, 7 insertions(+) create mode 100644 graycode/synthetic/README create mode 100644 graycode/synthetic/graycode-ramp.sr create mode 100644 graycode/synthetic/graycode-sin.sr create mode 100644 graycode/synthetic/rotary-ramp.sr create mode 100644 graycode/synthetic/rotary-sin.sr diff --git a/graycode/synthetic/README b/graycode/synthetic/README new file mode 100644 index 0000000..7d5ce07 --- /dev/null +++ b/graycode/synthetic/README @@ -0,0 +1,7 @@ +------------------------------------------------------------------------------- +Gray Code and Rotary Encoder +------------------------------------------------------------------------------- + +This is a collection of example Gray Code and Rotary Encoder signals. + +They were generated synthetically. diff --git a/graycode/synthetic/graycode-ramp.sr b/graycode/synthetic/graycode-ramp.sr new file mode 100644 index 0000000000000000000000000000000000000000..8de836572c114a01c0f8938602e4ad5f42299756 GIT binary patch literal 22564 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 literal 0 HcmV?d00001 diff --git a/graycode/synthetic/rotary-ramp.sr b/graycode/synthetic/rotary-ramp.sr new file mode 100644 index 0000000000000000000000000000000000000000..e62187d653278bbf9e7a8c4facc448e584db750d GIT binary patch literal 5996 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 literal 0 HcmV?d00001 diff --git a/graycode/synthetic/rotary-sin.sr b/graycode/synthetic/rotary-sin.sr new file mode 100644 index 0000000000000000000000000000000000000000..bd12f4852d313a639114768b987cf73570e49c93 GIT binary patch literal 4078 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