diff --git a/wpilibc/src/main/native/cpp/ADXL345_SPI.cpp b/wpilibc/src/main/native/cpp/ADXL345_SPI.cpp index 43257b8f16..063f5b700a 100644 --- a/wpilibc/src/main/native/cpp/ADXL345_SPI.cpp +++ b/wpilibc/src/main/native/cpp/ADXL345_SPI.cpp @@ -23,7 +23,7 @@ ADXL345_SPI::ADXL345_SPI(SPI::Port port, ADXL345_SPI::Range range) : m_spi(port) { m_spi.SetClockRate(500000); m_spi.SetMSBFirst(); - m_spi.SetSampleDataOnFalling(); + m_spi.SetSampleDataOnTrailingEdge(); m_spi.SetClockActiveLow(); m_spi.SetChipSelectActiveHigh(); diff --git a/wpilibc/src/main/native/cpp/ADXL362.cpp b/wpilibc/src/main/native/cpp/ADXL362.cpp index e9fecd2c94..14fffccb3d 100644 --- a/wpilibc/src/main/native/cpp/ADXL362.cpp +++ b/wpilibc/src/main/native/cpp/ADXL362.cpp @@ -47,7 +47,7 @@ ADXL362::ADXL362(Range range) : ADXL362(SPI::Port::kOnboardCS1, range) {} ADXL362::ADXL362(SPI::Port port, Range range) : m_spi(port) { m_spi.SetClockRate(3000000); m_spi.SetMSBFirst(); - m_spi.SetSampleDataOnFalling(); + m_spi.SetSampleDataOnTrailingEdge(); m_spi.SetClockActiveLow(); m_spi.SetChipSelectActiveLow(); diff --git a/wpilibc/src/main/native/cpp/ADXRS450_Gyro.cpp b/wpilibc/src/main/native/cpp/ADXRS450_Gyro.cpp index 66caa78272..b765855590 100644 --- a/wpilibc/src/main/native/cpp/ADXRS450_Gyro.cpp +++ b/wpilibc/src/main/native/cpp/ADXRS450_Gyro.cpp @@ -64,7 +64,7 @@ ADXRS450_Gyro::ADXRS450_Gyro() : ADXRS450_Gyro(SPI::kOnboardCS0) {} ADXRS450_Gyro::ADXRS450_Gyro(SPI::Port port) : m_spi(port) { m_spi.SetClockRate(3000000); m_spi.SetMSBFirst(); - m_spi.SetSampleDataOnRising(); + m_spi.SetSampleDataOnLeadingEdge(); m_spi.SetClockActiveHigh(); m_spi.SetChipSelectActiveLow(); diff --git a/wpilibc/src/main/native/cpp/SPI.cpp b/wpilibc/src/main/native/cpp/SPI.cpp index 396d28892d..1d700e6591 100644 --- a/wpilibc/src/main/native/cpp/SPI.cpp +++ b/wpilibc/src/main/native/cpp/SPI.cpp @@ -174,6 +174,24 @@ void SPI::SetLSBFirst() { HAL_SetSPIOpts(m_port, m_msbFirst, m_sampleOnTrailing, m_clk_idle_high); } +/** + * Configure that the data is stable on the leading edge and the data + * changes on the trailing edge. + */ +void SPI::SetSampleDataOnLeadingEdge() { + m_sampleOnTrailing = false; + HAL_SetSPIOpts(m_port, m_msbFirst, m_sampleOnTrailing, m_clk_idle_high); +} + +/** + * Configure that the data is stable on the trailing edge and the data + * changes on the leading edge. + */ +void SPI::SetSampleDataOnTrailingEdge() { + m_sampleOnTrailing = true; + HAL_SetSPIOpts(m_port, m_msbFirst, m_sampleOnTrailing, m_clk_idle_high); +} + /** * Configure that the data is stable on the falling edge and the data * changes on the rising edge. diff --git a/wpilibc/src/main/native/include/SPI.h b/wpilibc/src/main/native/include/SPI.h index 5805b588fe..73f7295671 100644 --- a/wpilibc/src/main/native/include/SPI.h +++ b/wpilibc/src/main/native/include/SPI.h @@ -12,6 +12,7 @@ #include #include +#include #include "ErrorBase.h" @@ -43,7 +44,12 @@ class SPI : public ErrorBase { void SetMSBFirst(); void SetLSBFirst(); + void SetSampleDataOnLeadingEdge(); + void SetSampleDataOnTrailingEdge(); + + WPI_DEPRECATED("Use SetSampleDataOnTrailingEdge in most cases.") void SetSampleDataOnFalling(); + WPI_DEPRECATED("Use SetSampleDataOnLeadingEdge in most cases") void SetSampleDataOnRising(); void SetClockActiveLow(); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL345_SPI.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL345_SPI.java index 48e02408d7..c6a0185cfb 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL345_SPI.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL345_SPI.java @@ -92,7 +92,7 @@ public class ADXL345_SPI extends SensorBase implements Accelerometer, Sendable { private void init(Range range) { m_spi.setClockRate(500000); m_spi.setMSBFirst(); - m_spi.setSampleDataOnFalling(); + m_spi.setSampleDataOnTrailingEdge(); m_spi.setClockActiveLow(); m_spi.setChipSelectActiveHigh(); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL362.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL362.java index 021417df83..5bb8461842 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL362.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXL362.java @@ -83,7 +83,7 @@ public class ADXL362 extends SensorBase implements Accelerometer, Sendable { m_spi.setClockRate(3000000); m_spi.setMSBFirst(); - m_spi.setSampleDataOnFalling(); + m_spi.setSampleDataOnTrailingEdge(); m_spi.setClockActiveLow(); m_spi.setChipSelectActiveLow(); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXRS450_Gyro.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXRS450_Gyro.java index 1449a80682..1eaec6c0c2 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXRS450_Gyro.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/ADXRS450_Gyro.java @@ -58,7 +58,7 @@ public class ADXRS450_Gyro extends GyroBase implements Gyro, PIDSource, Sendable m_spi.setClockRate(3000000); m_spi.setMSBFirst(); - m_spi.setSampleDataOnRising(); + m_spi.setSampleDataOnLeadingEdge(); m_spi.setClockActiveHigh(); m_spi.setChipSelectActiveLow(); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SPI.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/SPI.java index e80c4d2a38..3ee373930d 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SPI.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/SPI.java @@ -107,8 +107,29 @@ public class SPI { } /** - * Configure that the data is stable on the falling edge and the data changes on the rising edge. + * Configure that the data is stable on the leading edge and the data changes on the trailing + * edge. */ + public final void setSampleDataOnLeadingEdge() { + m_dataOnTrailing = 0; + SPIJNI.spiSetOpts(m_port, m_bitOrder, m_dataOnTrailing, m_clockPolarity); + } + + /** + * Configure that the data is stable on the trailing edge and the data changes on the leading + * edge. + */ + public final void setSampleDataOnTrailingEdge() { + m_dataOnTrailing = 1; + SPIJNI.spiSetOpts(m_port, m_bitOrder, m_dataOnTrailing, m_clockPolarity); + } + + /** + * Configure that the data is stable on the falling edge and the data changes on the rising edge. + * Note this gets reversed is setClockActiveLow is set. + * @deprecated use {@link #setSampleDataOnTrailingEdge()} in most cases. + */ + @Deprecated public final void setSampleDataOnFalling() { m_dataOnTrailing = 1; SPIJNI.spiSetOpts(m_port, m_bitOrder, m_dataOnTrailing, m_clockPolarity); @@ -116,12 +137,17 @@ public class SPI { /** * Configure that the data is stable on the rising edge and the data changes on the falling edge. + * Note this gets reversed is setClockActiveLow is set. + * @deprecated use {@link #setSampleDataOnLeadingEdge()} in most cases. */ + @Deprecated public final void setSampleDataOnRising() { m_dataOnTrailing = 0; SPIJNI.spiSetOpts(m_port, m_bitOrder, m_dataOnTrailing, m_clockPolarity); } + + /** * Configure the chip select line to be active high. */