From b15ff14fbaee63699b9576331014d3a0a46f0420 Mon Sep 17 00:00:00 2001 From: cfif Date: Fri, 24 Jan 2025 13:22:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BD=D0=BE=D0=B2=D1=83=D1=8E=20=D0=BE=D1=80?= =?UTF-8?q?=D0=B3=D0=B0=D0=BD=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8E=20GONEC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inc/SpiPortIO.h | 28 ++++++++++++++++++++++++++++ modular.json | 7 +++++++ 2 files changed, 35 insertions(+) create mode 100644 Inc/SpiPortIO.h create mode 100644 modular.json diff --git a/Inc/SpiPortIO.h b/Inc/SpiPortIO.h new file mode 100644 index 0000000..7899fb8 --- /dev/null +++ b/Inc/SpiPortIO.h @@ -0,0 +1,28 @@ +// +// Created by cfif on 28.09.22. +// + +#ifndef MODULE_SPIPORTIO_H +#define MODULE_SPIPORTIO_H + +#include "stdint.h" +#include "stdbool.h" + +typedef bool (*SpiPortIOTransaction )(void *env, uint16_t *data, uint32_t timeout); + +typedef bool (*SpiPortChipArbitrage )(void *env, uint32_t timeout); + +//chipSelect должен работать для всех чипов на шине(их может быть несколько) +//соответственно в реализации функци chipSelect и chipRelease может не просто происходить включение и выключение пина +//но и разделение доступа между разными устройройствами при помоши мьютексов +typedef struct { + void *env; + SpiPortIOTransaction receive; + SpiPortIOTransaction transmit; + + SpiPortChipArbitrage chipSelect; + SpiPortChipArbitrage chipRelease; +} tSpiPortIO; + + +#endif //MODULE_SPIPORTIO_H diff --git a/modular.json b/modular.json new file mode 100644 index 0000000..9bdd478 --- /dev/null +++ b/modular.json @@ -0,0 +1,7 @@ +{ + "cmake": { + "inc_dirs": [ + "Inc" + ] + } +} \ No newline at end of file