|
@ -150,7 +150,7 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void spiInit(uint8_t spiRate) { |
|
|
void spiInit(uint8_t spiRate) { |
|
|
|
|
|
SSP_Cmd(LPC_SSP0, DISABLE); // Disable SSP0 before changing rate
|
|
|
// table to convert Marlin spiRates (0-5 plus default) into bit rates
|
|
|
// table to convert Marlin spiRates (0-5 plus default) into bit rates
|
|
|
uint32_t Marlin_speed[7]; // CPSR is always 2
|
|
|
uint32_t Marlin_speed[7]; // CPSR is always 2
|
|
|
Marlin_speed[0] = 8333333; //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
|
|
|
Marlin_speed[0] = 8333333; //(SCR: 2) desired: 8,000,000 actual: 8,333,333 +4.2% SPI_FULL_SPEED
|
|
@ -242,6 +242,21 @@ |
|
|
|
|
|
|
|
|
void SPIClass::begin() { spiBegin(); } |
|
|
void SPIClass::begin() { spiBegin(); } |
|
|
|
|
|
|
|
|
|
|
|
void SPIClass::beginTransaction(SPISettings cfg) { |
|
|
|
|
|
uint8_t spiRate; |
|
|
|
|
|
switch(cfg.spiRate()) { |
|
|
|
|
|
case 8000000: spiRate=0 ;break; |
|
|
|
|
|
case 4000000: spiRate=1 ;break; |
|
|
|
|
|
case 2000000: spiRate=2 ;break; |
|
|
|
|
|
case 1000000: spiRate=3 ;break; |
|
|
|
|
|
case 500000: spiRate=4 ;break; |
|
|
|
|
|
case 250000: spiRate=5 ;break; |
|
|
|
|
|
case 125000: spiRate=6 ;break; |
|
|
|
|
|
default: spiRate=2; break; |
|
|
|
|
|
} |
|
|
|
|
|
spiInit(spiRate); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
uint8_t SPIClass::transfer(uint8_t B) { |
|
|
uint8_t SPIClass::transfer(uint8_t B) { |
|
|
return spiTransfer(B); |
|
|
return spiTransfer(B); |
|
|
} |
|
|
} |
|
|