mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-07-01 10:17:53 +00:00
Fix potential bug with wait loops
This commit is contained in:
parent
2b0f663482
commit
ebb8a33c1a
@ -153,7 +153,7 @@ uint16_t AFHDS2A_Rx_callback()
|
|||||||
case AFHDS2A_RX_BIND2 | AFHDS2A_RX_WAIT_WRITE:
|
case AFHDS2A_RX_BIND2 | AFHDS2A_RX_WAIT_WRITE:
|
||||||
//Wait for TX completion
|
//Wait for TX completion
|
||||||
pps_timer = micros();
|
pps_timer = micros();
|
||||||
while (micros() - pps_timer < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
while ((uint32_t)(micros() - pps_timer) < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
||||||
if (!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
if (!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||||
break;
|
break;
|
||||||
A7105_SetTxRxMode(RX_EN);
|
A7105_SetTxRxMode(RX_EN);
|
||||||
|
@ -326,7 +326,7 @@ uint16_t ReadAFHDS2A()
|
|||||||
case AFHDS2A_BIND3|AFHDS2A_WAIT_WRITE:
|
case AFHDS2A_BIND3|AFHDS2A_WAIT_WRITE:
|
||||||
//Wait for TX completion
|
//Wait for TX completion
|
||||||
start=micros();
|
start=micros();
|
||||||
while ((uint16_t)micros()-start < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
while ((uint16_t)((uint16_t)micros()-start) < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
||||||
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||||
break;
|
break;
|
||||||
A7105_SetPower();
|
A7105_SetPower();
|
||||||
@ -408,7 +408,7 @@ uint16_t ReadAFHDS2A()
|
|||||||
case AFHDS2A_DATA|AFHDS2A_WAIT_WRITE:
|
case AFHDS2A_DATA|AFHDS2A_WAIT_WRITE:
|
||||||
//Wait for TX completion
|
//Wait for TX completion
|
||||||
start=micros();
|
start=micros();
|
||||||
while ((uint16_t)micros()-start < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
while ((uint16_t)((uint16_t)micros()-start) < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
||||||
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||||
break;
|
break;
|
||||||
A7105_SetPower();
|
A7105_SetPower();
|
||||||
|
@ -115,7 +115,7 @@ void delayMilliseconds(unsigned long ms)
|
|||||||
uint16_t lms = ms ;
|
uint16_t lms = ms ;
|
||||||
|
|
||||||
while (lms > 0) {
|
while (lms > 0) {
|
||||||
if (((uint16_t)micros() - start) >= 1000) {
|
if ((uint16_t)((uint16_t)micros() - start) >= 1000) {
|
||||||
lms--;
|
lms--;
|
||||||
start += 1000;
|
start += 1000;
|
||||||
}
|
}
|
||||||
|
@ -340,7 +340,7 @@ uint16_t ReadBUGS(void)
|
|||||||
case BUGS_BIND_2:
|
case BUGS_BIND_2:
|
||||||
//Wait for TX completion
|
//Wait for TX completion
|
||||||
start=micros();
|
start=micros();
|
||||||
while ((uint16_t)micros()-start < 500) // Wait max 500µs, using serial+telemetry exit in about 60µs
|
while ((uint16_t)((uint16_t)micros()-start) < 500) // Wait max 500µs, using serial+telemetry exit in about 60µs
|
||||||
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||||
break;
|
break;
|
||||||
A7105_SetTxRxMode(RX_EN);
|
A7105_SetTxRxMode(RX_EN);
|
||||||
@ -399,7 +399,7 @@ uint16_t ReadBUGS(void)
|
|||||||
case BUGS_DATA_2:
|
case BUGS_DATA_2:
|
||||||
//Wait for TX completion
|
//Wait for TX completion
|
||||||
start=micros();
|
start=micros();
|
||||||
while ((uint16_t)micros()-start < 500) // Wait max 500µs, using serial+telemetry exit in about 60µs
|
while ((uint16_t)((uint16_t)micros()-start) < 500) // Wait max 500µs, using serial+telemetry exit in about 60µs
|
||||||
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||||
break;
|
break;
|
||||||
A7105_SetTxRxMode(RX_EN);
|
A7105_SetTxRxMode(RX_EN);
|
||||||
|
@ -451,7 +451,7 @@ uint16_t WK_cb()
|
|||||||
}
|
}
|
||||||
packet_sent = 0;
|
packet_sent = 0;
|
||||||
uint8_t start=micros();
|
uint8_t start=micros();
|
||||||
while ((uint8_t)micros()-start < 100) // Wait max 100µs
|
while ((uint8_t)((uint8_t)micros()-start) < 100) // Wait max 100µs
|
||||||
if(CYRF_ReadRegister(CYRF_04_TX_IRQ_STATUS) & 0x02)
|
if(CYRF_ReadRegister(CYRF_04_TX_IRQ_STATUS) & 0x02)
|
||||||
break;
|
break;
|
||||||
if((packet_count & 0x03) == 0)
|
if((packet_count & 0x03) == 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user