Browse Source

SPI performance tweak

Scott Lahteine 4 years ago
parent
commit
eebb68cd7f

+ 1
- 1
Marlin/src/HAL/LPC1768/include/SPI.h View File

39
 class SPIClass {
39
 class SPIClass {
40
   public:
40
   public:
41
     void begin();
41
     void begin();
42
-    void beginTransaction(SPISettings);
42
+    void beginTransaction(const SPISettings&);
43
     void endTransaction() {};
43
     void endTransaction() {};
44
     uint8_t transfer(uint8_t data);
44
     uint8_t transfer(uint8_t data);
45
     uint16_t transfer16(uint16_t data);
45
     uint16_t transfer16(uint16_t data);

+ 2
- 2
Marlin/src/HAL/STM32F1/SPI.cpp View File

243
   _currentSetting->spi_d->regs->CR1 = cr1 | (dataMode & (SPI_CR1_CPOL|SPI_CR1_CPHA));
243
   _currentSetting->spi_d->regs->CR1 = cr1 | (dataMode & (SPI_CR1_CPOL|SPI_CR1_CPHA));
244
 }
244
 }
245
 
245
 
246
-void SPIClass::beginTransaction(uint8_t pin, SPISettings settings) {
246
+void SPIClass::beginTransaction(uint8_t pin, const SPISettings &settings) {
247
   setBitOrder(settings.bitOrder);
247
   setBitOrder(settings.bitOrder);
248
   setDataMode(settings.dataMode);
248
   setDataMode(settings.dataMode);
249
   setDataSize(settings.dataSize);
249
   setDataSize(settings.dataSize);
251
   begin();
251
   begin();
252
 }
252
 }
253
 
253
 
254
-void SPIClass::beginTransactionSlave(SPISettings settings) {
254
+void SPIClass::beginTransactionSlave(const SPISettings &settings) {
255
   setBitOrder(settings.bitOrder);
255
   setBitOrder(settings.bitOrder);
256
   setDataMode(settings.dataMode);
256
   setDataMode(settings.dataMode);
257
   setDataSize(settings.dataSize);
257
   setDataSize(settings.dataSize);

+ 4
- 3
Marlin/src/HAL/STM32F1/SPI.h View File

126
     bitOrder = inBitOrder;
126
     bitOrder = inBitOrder;
127
     dataMode = inDataMode;
127
     dataMode = inDataMode;
128
     dataSize = inDataSize;
128
     dataSize = inDataSize;
129
+    //state    = SPI_STATE_IDLE;
129
   }
130
   }
130
   uint32_t clock;
131
   uint32_t clock;
131
   uint32_t dataSize;
132
   uint32_t dataSize;
187
    */
188
    */
188
   void end();
189
   void end();
189
 
190
 
190
-  void beginTransaction(SPISettings settings) { beginTransaction(BOARD_SPI_DEFAULT_SS, settings); }
191
-  void beginTransaction(uint8_t pin, SPISettings settings);
191
+  void beginTransaction(const SPISettings &settings) { beginTransaction(BOARD_SPI_DEFAULT_SS, settings); }
192
+  void beginTransaction(uint8_t pin, const SPISettings &settings);
192
   void endTransaction();
193
   void endTransaction();
193
 
194
 
194
-  void beginTransactionSlave(SPISettings settings);
195
+  void beginTransactionSlave(const SPISettings &settings);
195
 
196
 
196
   void setClockDivider(uint32_t clockDivider);
197
   void setClockDivider(uint32_t clockDivider);
197
   void setBitOrder(BitOrder bitOrder);
198
   void setBitOrder(BitOrder bitOrder);

Loading…
Cancel
Save