blinking task

This commit is contained in:
Paul Nehlich
2023-09-22 13:18:15 +02:00
parent 95c26b34c7
commit 809c41a4d7
6 changed files with 65 additions and 20 deletions

View File

@ -1 +1 @@
target_sources(${TARGET_NAME} PRIVATE main.cpp controller/PrintController.cpp)
target_sources(${TARGET_NAME} PRIVATE main.cpp controller/PrintController.cpp controller/BlinkController.cpp)

View File

@ -0,0 +1,33 @@
#include "BlinkController.h"
#include <cstdio>
BlinkController::BlinkController(object_id_t setObjectId)
: SystemObject(setObjectId) {}
ReturnValue_t BlinkController::initialize() {
ReturnValue_t result = SystemObject::initialize();
if (result != returnvalue::OK) {
return result;
}
XGpioPs_Config config;
config.DeviceId = 4; // chosen by fair dice throw
config.BaseAddr = XPS_GPIO_BASEADDR;
s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR);
if (returncode != 0) {
return returnvalue::FAILED;
}
XGpioPs_SetDirection(&gpio, 0, (1 << 7));
XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7));
XGpioPs_WritePin(&gpio, 7, 1);
return returnvalue::OK;
}
ReturnValue_t BlinkController::performOperation(uint8_t operationCode) {
printf("blinking\n");
static int pinvalue = 1;
pinvalue = pinvalue ^ 1;
XGpioPs_WritePin(&gpio, 7, pinvalue);
return returnvalue::OK;
}

View File

@ -0,0 +1,20 @@
#pragma once
#include <xgpiops.h>
#include <fsfw/objectmanager/SystemObject.h>
#include <fsfw/tasks/ExecutableObjectIF.h>
class BlinkController: public SystemObject, public ExecutableObjectIF {
public:
BlinkController(object_id_t setObjectId);
virtual ~BlinkController() = default;
ReturnValue_t initialize() override;
ReturnValue_t performOperation(uint8_t operationCode) override;
private:
XGpioPs gpio;
};

View File

@ -10,24 +10,10 @@ ReturnValue_t PrintController::initialize() {
if (result != returnvalue::OK) {
return result;
}
XGpioPs_Config config;
config.DeviceId = 4; // chosen by fair dice throw
config.BaseAddr = XPS_GPIO_BASEADDR;
s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR);
if (returncode != 0) {
return returnvalue::FAILED;
}
XGpioPs_SetDirection(&gpio, 0, (1 << 7));
XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7));
XGpioPs_WritePin(&gpio, 7, 1);
return returnvalue::OK;
}
ReturnValue_t PrintController::performOperation(uint8_t operationCode) {
printf("running\n");
static int pinvalue = 1;
pinvalue = pinvalue ^ 1;
XGpioPs_WritePin(&gpio, 7, pinvalue);
return returnvalue::OK;
}

View File

@ -1,7 +1,5 @@
#pragma once
#include <xgpiops.h>
#include <fsfw/objectmanager/SystemObject.h>
#include <fsfw/tasks/ExecutableObjectIF.h>
@ -15,6 +13,4 @@ class PrintController: public SystemObject, public ExecutableObjectIF {
ReturnValue_t performOperation(uint8_t operationCode) override;
private:
XGpioPs gpio;
};

View File

@ -215,8 +215,18 @@ void mission(void *){
controllerTask->startTask();
PeriodicTaskIF* blinkTask = taskFactory->createPeriodicTask(
"controllerBlink", currPrio, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1, nullptr);
blinkTask->addComponent(124);
printf("Created Tasks\n");
blinkTask->startTask();
printf("Started Tasks, deleting init task\n");
vTaskDelete(nullptr);
}
/*-----------------------------------------------------------*/