29 lines
982 B
C
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
|