Files
TX/source/mode.c

112 lines
1.7 KiB
C
Raw Normal View History

/*
* mode.c
*
* Created on: Jun 27, 2022
* Author: Keith.Lloyd
*/
#include "spi.h"
#include <stdbool.h>
#include <stdint.h>
#include <frq.h>
#include <stdio.h>
#include "arm_math.h"
#include "display.h"
#include "timer.h"
#include "mode.h"
#include "ports.h"
extern uint8_t Port_State[];
extern uint8_t LD_Flag;
uint8_t Cur_Mode, Old_Mode, Port_changed_flag; // Currently selected mode and last
MODE_REC_t mode_Array[MODE_MAX_NUM];
void mode_menu(void)
{
uint32_t value = 22370; // testing only
uint32_t tmp;
static bool keithistan = false;
// Delay_Ticks(10);
keithistan ^= 1; //toggle
Select_Next_Mode(); //
Port_changed_flag = true;
if(Cur_Mode == BROADCAST)
LD_Flag = false;
}
void Select_Next_Mode()
{
// Save currently selected mode
Old_Mode = Cur_Mode;
Cur_Mode = Next_Available_Mode(Cur_Mode); // find next Mode available
// if(Cur_Mode != Old_Mode)
// Set_Up_New_Mode();
// Display_Mode(Cur_Mode); // Display the currently selected mode
}
void Set_Up_New_Mode()
{
if (Old_Mode > 0)
{
mode_Array[Old_Mode].Selected = false;
mode_Array[Cur_Mode].Selected = true;
}
}
uint8_t Next_Available_Mode(uint8_t mode_tmp)
{
uint8_t found = false;
uint8_t i;
// mode_tmp = Cur_Mode;
if (mode_tmp < MODE_MAX_NUM - 1)
mode_tmp++;
else
mode_tmp = 0;
for(i=0; i < MODE_MAX_NUM - 1; i++)
{
if(mode_Array[mode_tmp].Selected > 0)
{
found = 1;
break;
}
if (mode_tmp < MODE_MAX_NUM - 1)
mode_tmp++;
else
mode_tmp= 0;
}
return(mode_tmp);
}
void Display_available_Modes(void)
{
// if (DC_Available())
// {
// }
}
void Select_All_Modes()
{
uint8_t i;
for(i = 0;i < MODE_MAX_NUM-1; i++)
mode_Array[i].Selected = true;
}