forked from ROMEO/obsw
blinking task
This commit is contained in:
@ -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)
|
33
mission/controller/BlinkController.cpp
Normal file
33
mission/controller/BlinkController.cpp
Normal 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;
|
||||||
|
}
|
20
mission/controller/BlinkController.h
Normal file
20
mission/controller/BlinkController.h
Normal 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;
|
||||||
|
};
|
@ -10,24 +10,10 @@ ReturnValue_t PrintController::initialize() {
|
|||||||
if (result != returnvalue::OK) {
|
if (result != returnvalue::OK) {
|
||||||
return result;
|
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;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t PrintController::performOperation(uint8_t operationCode) {
|
ReturnValue_t PrintController::performOperation(uint8_t operationCode) {
|
||||||
printf("running\n");
|
printf("running\n");
|
||||||
static int pinvalue = 1;
|
|
||||||
pinvalue = pinvalue ^ 1;
|
|
||||||
XGpioPs_WritePin(&gpio, 7, pinvalue);
|
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <xgpiops.h>
|
|
||||||
|
|
||||||
#include <fsfw/objectmanager/SystemObject.h>
|
#include <fsfw/objectmanager/SystemObject.h>
|
||||||
#include <fsfw/tasks/ExecutableObjectIF.h>
|
#include <fsfw/tasks/ExecutableObjectIF.h>
|
||||||
|
|
||||||
@ -15,6 +13,4 @@ class PrintController: public SystemObject, public ExecutableObjectIF {
|
|||||||
|
|
||||||
ReturnValue_t performOperation(uint8_t operationCode) override;
|
ReturnValue_t performOperation(uint8_t operationCode) override;
|
||||||
|
|
||||||
private:
|
|
||||||
XGpioPs gpio;
|
|
||||||
};
|
};
|
@ -212,11 +212,21 @@ void mission(void *){
|
|||||||
controllerTask->addComponent(123);
|
controllerTask->addComponent(123);
|
||||||
|
|
||||||
printf("Created Tasks\n");
|
printf("Created Tasks\n");
|
||||||
|
|
||||||
controllerTask->startTask();
|
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");
|
printf("Started Tasks, deleting init task\n");
|
||||||
|
|
||||||
|
|
||||||
vTaskDelete(nullptr);
|
vTaskDelete(nullptr);
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
Reference in New Issue
Block a user