/* * mode.c * * Created on: Jun 27, 2022 * Author: Keith.Lloyd */ #include "spi.h" #include #include #include #include #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; 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; }