SpiPortInterface/Inc/SpiPortIO.h

29 lines
982 B
C

//
// 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