initial check in based on SVN revision 575
This commit is contained in:
111
source/mode.c
Normal file
111
source/mode.c
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user