Fixing software serial stop bits. Was broken since timer frequency
calculation changes in c7de7d2ebc
.
This commit is contained in:
parent
c2c1613dac
commit
e2deeeebd3
|
@ -218,17 +218,20 @@ void processTxState(softSerial_t *softSerial)
|
|||
softSerial->internalTxBuffer = (1 << (TX_TOTAL_BITS - 1)) | (byteToSend << 1);
|
||||
softSerial->bitsLeftToTransmit = TX_TOTAL_BITS;
|
||||
softSerial->isTransmittingData = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
mask = softSerial->internalTxBuffer & 1;
|
||||
softSerial->internalTxBuffer >>= 1;
|
||||
if (softSerial->bitsLeftToTransmit) {
|
||||
mask = softSerial->internalTxBuffer & 1;
|
||||
softSerial->internalTxBuffer >>= 1;
|
||||
|
||||
setTxSignal(softSerial, mask);
|
||||
|
||||
if (--softSerial->bitsLeftToTransmit <= 0) {
|
||||
softSerial->isTransmittingData = false;
|
||||
setTxSignal(softSerial, mask);
|
||||
softSerial->bitsLeftToTransmit--;
|
||||
return;
|
||||
}
|
||||
|
||||
softSerial->isTransmittingData = false;
|
||||
}
|
||||
|
||||
enum {
|
||||
|
|
|
@ -24,7 +24,7 @@ typedef struct softSerial_s {
|
|||
uint8_t rxEdge;
|
||||
|
||||
uint8_t isTransmittingData;
|
||||
uint8_t bitsLeftToTransmit;
|
||||
int8_t bitsLeftToTransmit;
|
||||
|
||||
uint16_t internalTxBuffer; // includes start and stop bits
|
||||
uint16_t internalRxBuffer; // includes start and stop bits
|
||||
|
|
Loading…
Reference in New Issue