|
@@ -150,7 +150,7 @@
|
150
|
150
|
}
|
151
|
151
|
|
152
|
152
|
void spiInit(uint8_t spiRate) {
|
153
|
|
-
|
|
153
|
+ SSP_Cmd(LPC_SSP0, DISABLE); // Disable SSP0 before changing rate
|
154
|
154
|
// table to convert Marlin spiRates (0-5 plus default) into bit rates
|
155
|
155
|
uint32_t Marlin_speed[7]; // CPSR is always 2
|
156
|
156
|
Marlin_speed[0] = 8333333; //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
|
|
@@ -242,6 +242,21 @@
|
242
|
242
|
|
243
|
243
|
void SPIClass::begin() { spiBegin(); }
|
244
|
244
|
|
|
245
|
+void SPIClass::beginTransaction(SPISettings cfg) {
|
|
246
|
+ uint8_t spiRate;
|
|
247
|
+ switch(cfg.spiRate()) {
|
|
248
|
+ case 8000000: spiRate=0 ;break;
|
|
249
|
+ case 4000000: spiRate=1 ;break;
|
|
250
|
+ case 2000000: spiRate=2 ;break;
|
|
251
|
+ case 1000000: spiRate=3 ;break;
|
|
252
|
+ case 500000: spiRate=4 ;break;
|
|
253
|
+ case 250000: spiRate=5 ;break;
|
|
254
|
+ case 125000: spiRate=6 ;break;
|
|
255
|
+ default: spiRate=2; break;
|
|
256
|
+ }
|
|
257
|
+ spiInit(spiRate);
|
|
258
|
+}
|
|
259
|
+
|
245
|
260
|
uint8_t SPIClass::transfer(uint8_t B) {
|
246
|
261
|
return spiTransfer(B);
|
247
|
262
|
}
|