ADD measure time call

This commit is contained in:
fastium
2025-01-04 15:51:51 +01:00
parent 4fb09c690c
commit b9c129e872
6 changed files with 125 additions and 92 deletions

View File

@@ -26,8 +26,9 @@
#include "gear_device.hpp"
#include "bike_system.hpp"
// from disco_h747i/wrappers
#include <chrono>
#include "joystick.hpp"
#include "mbed_atomic.h"
@@ -39,11 +40,10 @@
namespace multi_tasking {
GearDevice::GearDevice(Mail<uint8_t, 16>* mailBox) {
GearDevice::GearDevice(Mail<gearMail_t, 16>* mailBox, Timer& timer)
: _mailBox(mailBox), _timer(timer) {
disco::Joystick::getInstance().setUpCallback(callback(this, &GearDevice::onUp));
disco::Joystick::getInstance().setDownCallback(callback(this, &GearDevice::onDown));
_mailBox = mailBox;
}
void GearDevice::onUp() {
@@ -61,10 +61,13 @@ void GearDevice::onDown() {
}
void GearDevice::sendMail(uint32_t data) {
uint8_t* currentGear = _mailBox->try_alloc();
if (currentGear != nullptr) {
*currentGear = data;
_mailBox->put(currentGear);
if (_mailBox != nullptr) {
gearMail_t* currentGear = _mailBox->try_alloc();
if (currentGear != nullptr) {
currentGear->gear = data;
currentGear->callTime = _timer.elapsed_time();
_mailBox->put(currentGear);
}
}
}