From b932b2dd1faaf3091b13af7d213041a737e40fac Mon Sep 17 00:00:00 2001 From: Damien George Date: Tue, 4 Oct 2016 13:43:02 +1100 Subject: extmod/machine_spi: Use delay_half, not baudrate, for internal timing. The delay_half parameter must be specified by the port to set up the timing of the software SPI. This allows the port to adjust the timing value to better suit its timing characteristics, as well as provide a more accurate printing of the baudrate. --- extmod/machine_spi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'extmod/machine_spi.c') diff --git a/extmod/machine_spi.c b/extmod/machine_spi.c index 3a34b7fb0..b0bd76faf 100644 --- a/extmod/machine_spi.c +++ b/extmod/machine_spi.c @@ -34,8 +34,10 @@ void mp_machine_soft_spi_transfer(mp_obj_base_t *self_in, size_t len, const uint8_t *src, uint8_t *dest) { mp_machine_soft_spi_obj_t *self = (mp_machine_soft_spi_obj_t*)self_in; + uint32_t delay_half = self->delay_half; + // only MSB transfer is implemented - uint32_t delay_half = 500000 / self->baudrate + 1; + for (size_t i = 0; i < len; ++i) { uint8_t data_out = src[i]; uint8_t data_in = 0; -- cgit v1.2.3