WPILibC++  unspecified
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
SPI.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2016-2017. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #include <stdint.h>
11 
12 #include "HAL/Types.h"
13 
14 enum HAL_SPIPort : int32_t {
15  HAL_SPI_kOnboardCS0 = 0,
16  HAL_SPI_kOnboardCS1,
17  HAL_SPI_kOnboardCS2,
18  HAL_SPI_kOnboardCS3,
19  HAL_SPI_kMXP
20 };
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
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);
39 
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,
48  int32_t* status);
49 void HAL_SetSPIAccumulatorDeadband(HAL_SPIPort port, int32_t deadband,
50  int32_t* status);
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);
57 #ifdef __cplusplus
58 }
59 #endif