mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-03-03 04:03:59 -04:00
HAL_ChibiOS: move tto using updated time conversion API
This commit is contained in:
parent
4e8d072d6d
commit
395c48933c
@ -243,10 +243,10 @@ bool I2CDevice::_transfer(const uint8_t *send, uint32_t send_len,
|
|||||||
osalDbgAssert(I2CD[bus.busnum].i2c->state == I2C_READY, "i2cStart state");
|
osalDbgAssert(I2CD[bus.busnum].i2c->state == I2C_READY, "i2cStart state");
|
||||||
|
|
||||||
if(send_len == 0) {
|
if(send_len == 0) {
|
||||||
ret = i2cMasterReceiveTimeout(I2CD[bus.busnum].i2c, _address, recv, recv_len, MS2ST(timeout_ms));
|
ret = i2cMasterReceiveTimeout(I2CD[bus.busnum].i2c, _address, recv, recv_len, chTimeMS2I(timeout_ms));
|
||||||
} else {
|
} else {
|
||||||
ret = i2cMasterTransmitTimeout(I2CD[bus.busnum].i2c, _address, send, send_len,
|
ret = i2cMasterTransmitTimeout(I2CD[bus.busnum].i2c, _address, send, send_len,
|
||||||
recv, recv_len, MS2ST(timeout_ms));
|
recv, recv_len, chTimeMS2I(timeout_ms));
|
||||||
}
|
}
|
||||||
|
|
||||||
i2cStop(I2CD[bus.busnum].i2c);
|
i2cStop(I2CD[bus.busnum].i2c);
|
||||||
|
@ -1075,7 +1075,7 @@ bool RCOutput::serial_write_byte(uint8_t b)
|
|||||||
send_pulses_DMAR(*serial_group, 10*4*sizeof(uint32_t));
|
send_pulses_DMAR(*serial_group, 10*4*sizeof(uint32_t));
|
||||||
|
|
||||||
// wait for the event
|
// wait for the event
|
||||||
eventmask_t mask = chEvtWaitAnyTimeout(serial_event_mask, MS2ST(2));
|
eventmask_t mask = chEvtWaitAnyTimeout(serial_event_mask, chTimeMS2I(2));
|
||||||
|
|
||||||
serial_group->in_serial_dma = false;
|
serial_group->in_serial_dma = false;
|
||||||
|
|
||||||
@ -1167,7 +1167,7 @@ void RCOutput::serial_bit_irq(void)
|
|||||||
*/
|
*/
|
||||||
bool RCOutput::serial_read_byte(uint8_t &b)
|
bool RCOutput::serial_read_byte(uint8_t &b)
|
||||||
{
|
{
|
||||||
bool timed_out = ((chEvtWaitAnyTimeout(serial_event_mask, MS2ST(10)) & serial_event_mask) == 0);
|
bool timed_out = ((chEvtWaitAnyTimeout(serial_event_mask, chTimeMS2I(10)) & serial_event_mask) == 0);
|
||||||
|
|
||||||
uint16_t byteval = irq.byteval;
|
uint16_t byteval = irq.byteval;
|
||||||
|
|
||||||
|
@ -99,12 +99,7 @@ void Scheduler::delay_microseconds(uint16_t usec)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
uint32_t ticks;
|
uint32_t ticks;
|
||||||
if (usec >= 4096) {
|
ticks = chTimeUS2I(usec);
|
||||||
// we need to use 64 bit calculations for tick conversions
|
|
||||||
ticks = US2ST64(usec);
|
|
||||||
} else {
|
|
||||||
ticks = US2ST(usec);
|
|
||||||
}
|
|
||||||
if (ticks == 0) {
|
if (ticks == 0) {
|
||||||
// calling with ticks == 0 causes a hard fault on ChibiOS
|
// calling with ticks == 0 causes a hard fault on ChibiOS
|
||||||
ticks = 1;
|
ticks = 1;
|
||||||
|
@ -71,7 +71,7 @@ void UARTDriver::uart_thread(void* arg)
|
|||||||
|
|
||||||
uart_thread_ctx = chThdGetSelfX();
|
uart_thread_ctx = chThdGetSelfX();
|
||||||
while (true) {
|
while (true) {
|
||||||
eventmask_t mask = chEvtWaitAnyTimeout(~0, MS2ST(1));
|
eventmask_t mask = chEvtWaitAnyTimeout(~0, chTimeMS2I(1));
|
||||||
uint32_t now = AP_HAL::micros();
|
uint32_t now = AP_HAL::micros();
|
||||||
if (now - last_thread_run_us >= 1000) {
|
if (now - last_thread_run_us >= 1000) {
|
||||||
// run them all if it's been more than 1ms since we ran
|
// run them all if it's been more than 1ms since we ran
|
||||||
@ -600,7 +600,7 @@ bool UARTDriver::wait_timeout(uint16_t n, uint32_t timeout_ms)
|
|||||||
}
|
}
|
||||||
_wait.n = n;
|
_wait.n = n;
|
||||||
_wait.thread_ctx = chThdGetSelfX();
|
_wait.thread_ctx = chThdGetSelfX();
|
||||||
eventmask_t mask = chEvtWaitAnyTimeout(EVT_DATA, MS2ST(timeout_ms));
|
eventmask_t mask = chEvtWaitAnyTimeout(EVT_DATA, chTimeMS2I(timeout_ms));
|
||||||
return (mask & EVT_DATA) != 0;
|
return (mask & EVT_DATA) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ uint64_t hrt_micros()
|
|||||||
// since we are definitely going to get called atleast once in
|
// since we are definitely going to get called atleast once in
|
||||||
// a full timer period
|
// a full timer period
|
||||||
if (last_micros > micros) {
|
if (last_micros > micros) {
|
||||||
const uint64_t step = ST2US(1ULL<<CH_CFG_ST_RESOLUTION);
|
const uint64_t step = TIME_MAX_SYSTIME;
|
||||||
timer_base += step;
|
timer_base += step;
|
||||||
micros += step;
|
micros += step;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user