change multi splitflap to static amount of flaps

main
Jonas Arnold 4 years ago
parent cf354910d0
commit e60539beb8
  1. 18
      ADIS_tinyK22_SplitFlap/source/application.c
  2. 23
      ADIS_tinyK22_SplitFlap/source/multi-splitflap.c
  3. 7
      ADIS_tinyK22_SplitFlap/source/multi-splitflap.h

@ -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",

@ -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);
}

@ -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);

Loading…
Cancel
Save