From e60539beb8bc27af1e21a1c07fdb80435c947ead Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Fri, 14 Oct 2022 13:19:48 +0200 Subject: [PATCH] change multi splitflap to static amount of flaps --- ADIS_tinyK22_SplitFlap/source/application.c | 18 +++++++++++---- .../source/multi-splitflap.c | 23 +++++++++++-------- .../source/multi-splitflap.h | 7 +++--- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/ADIS_tinyK22_SplitFlap/source/application.c b/ADIS_tinyK22_SplitFlap/source/application.c index 6369d8e..f54748e 100644 --- a/ADIS_tinyK22_SplitFlap/source/application.c +++ b/ADIS_tinyK22_SplitFlap/source/application.c @@ -15,6 +15,8 @@ #include "splitflap.h" #include "multi-splitflap.h" +#define APP_DEBUG + /* blue led pins */ #define LED_BLUE_GPIO GPIOC #define LED_BLUE_PORT PORTC @@ -47,26 +49,34 @@ void App_Init(void){ /* Application run */ void App_Run(void){ - - char* sentence[] = {"JONAS!"}; - MultiSplitFlap_Display(sentence); - PRINTF("Initializing split flap motors.\n"); bool successfulInit0 = SF_MoveMotorToZeroPosition(splitflap0, 12); PRINTF("Init of motor 0 done. Success = %s\n\n", successfulInit0 ? "true" : "false"); +#ifndef APP_DEBUG // if init failed => stop if(successfulInit0 == false){ return; } +#endif + bool successfulInit1 = SF_MoveMotorToZeroPosition(splitflap1, 12); PRINTF("Init of motor 1 done. Success = %s\n\n", successfulInit1 ? "true" : "false"); +#ifndef APP_DEBUG // if init failed => stop if(successfulInit1 == false){ return; } +#endif + + /* MULTI SPLIT FLAP TESTING */ + char* sentence[] = {"JONAS!"}; + MultiSplitFlap_Display(sentence); + + return; + /* SINGLE SPLIT FLAP TESTING */ // go through the following letters char* letters[] = {"J", "O", "N", "A", "S", "!"}; //char* letters[] = { " ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", diff --git a/ADIS_tinyK22_SplitFlap/source/multi-splitflap.c b/ADIS_tinyK22_SplitFlap/source/multi-splitflap.c index d8892c1..53b71e6 100644 --- a/ADIS_tinyK22_SplitFlap/source/multi-splitflap.c +++ b/ADIS_tinyK22_SplitFlap/source/multi-splitflap.c @@ -11,21 +11,19 @@ #include "fsl_debug_console.h" static dict_t **flapDict; -static uint8_t numberOfFlaps = 0; static uint8_t addedFlaps = 0; static const uint8_t BYTES_PER_KEY = 3; -static char* flapKeys[] = {}; +static char* flapKeys[NUM_FLAPS]; // reserve memory void initFlapKeys(uint8_t numberOfFlaps); -void MultiSplitFlap_Init(uint8_t numOfFlaps){ - numberOfFlaps = numOfFlaps; +void MultiSplitFlap_Init(){ addedFlaps = 0; flapDict = dictAlloc(); ((dict_t*)flapDict)->key=NULL; ((dict_t*)flapDict)->value=NULL; ((dict_t*)flapDict)->next=NULL; - initFlapKeys(numberOfFlaps); + initFlapKeys(NUM_FLAPS); } void initFlapKeys(uint8_t numberOfFlaps){ @@ -45,7 +43,6 @@ void initFlapKeys(uint8_t numberOfFlaps){ void MultiSplitFlap_Deinit(void){ dictDealoc(flapDict); addedFlaps = 0; - numberOfFlaps = 0; } uint8_t MultiSplitFlap_GetAmountOfAddedSplitFlaps(void){ @@ -55,14 +52,20 @@ uint8_t MultiSplitFlap_GetAmountOfAddedSplitFlaps(void){ void MultiSplitFlap_AddFlap(SF_Handle_t splitflap){ PRINTF("Adding split flap to multi splitflap combination...\n"); addItem(flapDict, flapKeys[addedFlaps], (SF_Handle_t*)splitflap); - PRINTF("Added flap nr. %i/%i.\n", addedFlaps+1, numberOfFlaps); + PRINTF("Added flap nr. %i/%i.\n", addedFlaps+1, NUM_FLAPS); addedFlaps++; } void MultiSplitFlap_Display(char* sentence[]){ - SF_t* sf0 = (SF_t*)(SF_Handle_t)(getItem(*flapDict, flapKeys[0])); - SF_t* sf1 = (SF_t*)(SF_Handle_t)(getItem(*flapDict, flapKeys[1])); - int32_t test = McuULN2003_GetPos(sf1->motor); + for (uint8_t num = 0; num < NUM_FLAPS; ++num) { + SF_Handle_t sfHandle = (SF_Handle_t)(getItem(*flapDict, flapKeys[num])); + SF_MoveToFlap(sfHandle, sentence[num]); + PRINTF("Moved multisplitflap: Flap nr. %i to letter '%c'.\n", num+1, (*sentence)[num]); + } + // for testing purposes only + //SF_t* sf0 = (SF_t*)(SF_Handle_t)(getItem(*flapDict, flapKeys[0])); + //SF_t* sf1 = (SF_t*)(SF_Handle_t)(getItem(*flapDict, flapKeys[1])); + //int32_t test = McuULN2003_GetPos(sf1->motor); } diff --git a/ADIS_tinyK22_SplitFlap/source/multi-splitflap.h b/ADIS_tinyK22_SplitFlap/source/multi-splitflap.h index a94f22d..6435f79 100644 --- a/ADIS_tinyK22_SplitFlap/source/multi-splitflap.h +++ b/ADIS_tinyK22_SplitFlap/source/multi-splitflap.h @@ -10,9 +10,10 @@ #include "splitflap.h" -/* initialize dictionary - * numberOfFlaps: Number of flaps to be added to the combination */ -void MultiSplitFlap_Init(uint8_t numOfFlaps); +#define NUM_FLAPS 2 // Number of flaps that can be added to the combination + +/* initialize dictionary */ +void MultiSplitFlap_Init(); /* de-initialize: deallocate memory etc. */ void MultiSplitFlap_Deinit(void);