From ca953ee8c4b4e1a5e26af041173a62a1bd57c33c Mon Sep 17 00:00:00 2001 From: "@CarlWachter" Date: Sun, 25 Feb 2024 10:23:17 +0100 Subject: [PATCH] Proper thermo driver init --- App/Inc/tasks/thermo.hpp | 6 ++++++ App/Src/tasks/thermo.cpp | 22 ++++++++-------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/App/Inc/tasks/thermo.hpp b/App/Inc/tasks/thermo.hpp index cca7b67..5cda223 100644 --- a/App/Inc/tasks/thermo.hpp +++ b/App/Inc/tasks/thermo.hpp @@ -25,6 +25,12 @@ namespace demo private: + sta::STM32GpioPin cs_pin = sta::STM32GpioPin(GPIOE, GPIO_PIN_13); + sta::RtosMutex* mutex; + sta::STM32SPI* spi2; + sta::STM32SPIDevice* device_; + + sta::MAX31855 tc*; }; } // namespace demo diff --git a/App/Src/tasks/thermo.cpp b/App/Src/tasks/thermo.cpp index 8ffd534..dfee80c 100644 --- a/App/Src/tasks/thermo.cpp +++ b/App/Src/tasks/thermo.cpp @@ -27,8 +27,11 @@ namespace demo void ThermoTask::init() { + mutex = new sta::RtosMutex("spi2"); + spi2 = new sta::STM32SPI(&hspi2, 16000000, &mutex); + device_ = new sta::STM32SPIDevice(spi2, &cs_pin); - + tc = new sta::MAX31855(&device_); //create driver object } void ThermoTask::func() @@ -38,24 +41,15 @@ namespace demo //STA_DEBUG_HEAP_STATS(); //fuck off other pins - HAL_GPIO_WritePin(GPIOE,GPIO_PIN_12, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_15, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_14, GPIO_PIN_SET); - sta::STM32GpioPin cs_pin(GPIOE, GPIO_PIN_13); - - sta::RtosMutex mutex("spi2"); - sta::STM32SPI spi2_ptr(&hspi2, 16000000, &mutex); - sta::STM32SPIDevice device_(&spi2_ptr, &cs_pin); - - sta::MAX31855 tc = sta::MAX31855(&device_); //create driver object - - tc.update(); // update internal values - float temperature = tc.getTemp(); //read out temperature in degrees Celsius - float referenceTemperature = tc.getReferenceTemp(); // read out reference temperature in degrees Celsius - uint8_t status = tc.getStatus(); //read out status of the update + tc->update(); // update internal values + float temperature = tc->getTemp(); //read out temperature in degrees Celsius + float referenceTemperature = tc->getReferenceTemp(); // read out reference temperature in degrees Celsius + uint8_t status = tc->getStatus(); //read out status of the update HAL_Delay(1000); }