12 #include "HAL/Types.h"
14 enum HAL_SPIPort : int32_t {
15 HAL_SPI_kOnboardCS0 = 0,
26 void HAL_InitializeSPI(HAL_SPIPort port, int32_t* status);
27 int32_t HAL_TransactionSPI(HAL_SPIPort port, uint8_t* dataToSend,
28 uint8_t* dataReceived, int32_t size);
29 int32_t HAL_WriteSPI(HAL_SPIPort port, uint8_t* dataToSend, int32_t sendSize);
30 int32_t HAL_ReadSPI(HAL_SPIPort port, uint8_t* buffer, int32_t count);
31 void HAL_CloseSPI(HAL_SPIPort port);
32 void HAL_SetSPISpeed(HAL_SPIPort port, int32_t speed);
33 void HAL_SetSPIOpts(HAL_SPIPort port, HAL_Bool msbFirst,
34 HAL_Bool sampleOnTrailing, HAL_Bool clkIdleHigh);
35 void HAL_SetSPIChipSelectActiveHigh(HAL_SPIPort port, int32_t* status);
36 void HAL_SetSPIChipSelectActiveLow(HAL_SPIPort port, int32_t* status);
37 int32_t HAL_GetSPIHandle(HAL_SPIPort port);
38 void HAL_SetSPIHandle(HAL_SPIPort port, int32_t handle);
40 void HAL_InitSPIAccumulator(HAL_SPIPort port, int32_t period, int32_t cmd,
41 int32_t xferSize, int32_t validMask,
42 int32_t validValue, int32_t dataShift,
43 int32_t dataSize, HAL_Bool isSigned,
44 HAL_Bool bigEndian, int32_t* status);
45 void HAL_FreeSPIAccumulator(HAL_SPIPort port, int32_t* status);
46 void HAL_ResetSPIAccumulator(HAL_SPIPort port, int32_t* status);
47 void HAL_SetSPIAccumulatorCenter(HAL_SPIPort port, int32_t center,
49 void HAL_SetSPIAccumulatorDeadband(HAL_SPIPort port, int32_t deadband,
51 int32_t HAL_GetSPIAccumulatorLastValue(HAL_SPIPort port, int32_t* status);
52 int64_t HAL_GetSPIAccumulatorValue(HAL_SPIPort port, int32_t* status);
53 int64_t HAL_GetSPIAccumulatorCount(HAL_SPIPort port, int32_t* status);
54 double HAL_GetSPIAccumulatorAverage(HAL_SPIPort port, int32_t* status);
55 void HAL_GetSPIAccumulatorOutput(HAL_SPIPort port, int64_t* value,
56 int64_t* count, int32_t* status);