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