Back-light PWM
This commit is contained in:
39
app/app.c
39
app/app.c
@@ -1611,11 +1611,16 @@ void APP_TimeSlice500ms(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (gBacklightCountdown > 0 && !gAskToSave && gCssScanMode == CSS_SCAN_MODE_OFF)
|
if (gBacklightCountdown > 0 &&
|
||||||
if (gScreenToDisplay != DISPLAY_MENU || GetCurrentMenuId() != MENU_ABR) // don't turn off backlight if user is in backlight menu option
|
!gAskToSave &&
|
||||||
if (--gBacklightCountdown == 0)
|
gCssScanMode == CSS_SCAN_MODE_OFF &&
|
||||||
if (gEeprom.BACKLIGHT < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1))
|
// don't turn off backlight if user is in backlight menu option
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn backlight off
|
!(gScreenToDisplay == DISPLAY_MENU && (GetCurrentMenuId() == MENU_ABR || GetCurrentMenuId() == MENU_ABR_MAX))
|
||||||
|
)
|
||||||
|
{ if (--gBacklightCountdown == 0)
|
||||||
|
if (gEeprom.BACKLIGHT_TIME < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1)) // backlight is not set to be always on
|
||||||
|
BACKLIGHT_TurnOff(); // turn backlight off
|
||||||
|
}
|
||||||
|
|
||||||
if (gSerialConfigCountDown_500ms > 0)
|
if (gSerialConfigCountDown_500ms > 0)
|
||||||
{
|
{
|
||||||
@@ -1687,10 +1692,9 @@ void APP_TimeSlice500ms(void)
|
|||||||
{
|
{
|
||||||
gMenuCountdown = 0;
|
gMenuCountdown = 0;
|
||||||
|
|
||||||
if (gEeprom.BACKLIGHT == 0)
|
if (gEeprom.BACKLIGHT_TIME == 0) // backlight always off
|
||||||
{
|
{
|
||||||
gBacklightCountdown = 0;
|
BACKLIGHT_TurnOff(); // turn the backlight OFF
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight OFF
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gInputBoxIndex > 0 || gDTMF_InputMode)
|
if (gInputBoxIndex > 0 || gDTMF_InputMode)
|
||||||
@@ -1807,8 +1811,8 @@ void APP_TimeSlice500ms(void)
|
|||||||
|
|
||||||
ST7565_HardwareReset();
|
ST7565_HardwareReset();
|
||||||
|
|
||||||
if (gEeprom.BACKLIGHT < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1))
|
if (gEeprom.BACKLIGHT_TIME < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1))
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight off
|
BACKLIGHT_TurnOff(); // turn the backlight off
|
||||||
}
|
}
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
else
|
else
|
||||||
@@ -1907,9 +1911,7 @@ void APP_TimeSlice500ms(void)
|
|||||||
|
|
||||||
static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||||
{
|
{
|
||||||
const bool backlight_was_on = GPIO_CheckBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
if (Key == KEY_EXIT && !BACKLIGHT_IsOn() && gEeprom.BACKLIGHT_TIME > 0)
|
||||||
|
|
||||||
if (Key == KEY_EXIT && !backlight_was_on && gEeprom.BACKLIGHT > 0)
|
|
||||||
{ // just turn the light on for now so the user can see what's what
|
{ // just turn the light on for now so the user can see what's what
|
||||||
BACKLIGHT_TurnOn();
|
BACKLIGHT_TurnOn();
|
||||||
gBeepToPlay = BEEP_NONE;
|
gBeepToPlay = BEEP_NONE;
|
||||||
@@ -1959,9 +1961,16 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
|||||||
}
|
}
|
||||||
else // key pressed or held
|
else // key pressed or held
|
||||||
{
|
{
|
||||||
if (Key != KEY_PTT || gSetting_backlight_on_tx_rx == BACKLIGHT_ON_TR_TX
|
const uint8_t s = gSetting_backlight_on_tx_rx;
|
||||||
|| gSetting_backlight_on_tx_rx == BACKLIGHT_ON_TR_TXRX)
|
const int m = GetCurrentMenuId();
|
||||||
|
if ( //not when PTT and the backlight shouldn't turn on on TX
|
||||||
|
!(Key == KEY_PTT && s != BACKLIGHT_ON_TR_TX && s != BACKLIGHT_ON_TR_TXRX)
|
||||||
|
// not in the backlight menu
|
||||||
|
&& !(gScreenToDisplay == DISPLAY_MENU && ( m == MENU_ABR || m == MENU_ABR_MAX || m == MENU_ABR_MIN))
|
||||||
|
)
|
||||||
|
{
|
||||||
BACKLIGHT_TurnOn();
|
BACKLIGHT_TurnOn();
|
||||||
|
}
|
||||||
|
|
||||||
if (Key == KEY_EXIT && bKeyHeld)
|
if (Key == KEY_EXIT && bKeyHeld)
|
||||||
{ // exit key held pressed
|
{ // exit key held pressed
|
||||||
|
83
app/menu.c
83
app/menu.c
@@ -117,6 +117,16 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax)
|
|||||||
*pMax = ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1;
|
*pMax = ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MENU_ABR_MIN:
|
||||||
|
*pMin = 0;
|
||||||
|
*pMax = 9;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_ABR_MAX:
|
||||||
|
*pMin = 1;
|
||||||
|
*pMax = 10;
|
||||||
|
break;
|
||||||
|
|
||||||
case MENU_F_LOCK:
|
case MENU_F_LOCK:
|
||||||
*pMin = 0;
|
*pMin = 0;
|
||||||
*pMax = ARRAY_SIZE(gSubMenu_F_LOCK) - 1;
|
*pMax = ARRAY_SIZE(gSubMenu_F_LOCK) - 1;
|
||||||
@@ -516,7 +526,17 @@ void MENU_AcceptSetting(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
case MENU_ABR:
|
case MENU_ABR:
|
||||||
gEeprom.BACKLIGHT = gSubMenuSelection;
|
gEeprom.BACKLIGHT_TIME = gSubMenuSelection;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_ABR_MIN:
|
||||||
|
gEeprom.BACKLIGHT_MIN = gSubMenuSelection;
|
||||||
|
gEeprom.BACKLIGHT_MAX = MAX(gSubMenuSelection + 1 , gEeprom.BACKLIGHT_MAX);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_ABR_MAX:
|
||||||
|
gEeprom.BACKLIGHT_MAX = gSubMenuSelection;
|
||||||
|
gEeprom.BACKLIGHT_MIN = MIN(gSubMenuSelection - 1, gEeprom.BACKLIGHT_MIN);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ABR_ON_TX_RX:
|
case MENU_ABR_ON_TX_RX:
|
||||||
@@ -934,17 +954,22 @@ void MENU_ShowCurrentSetting(void)
|
|||||||
gSubMenuSelection = gEeprom.BATTERY_SAVE;
|
gSubMenuSelection = gEeprom.BATTERY_SAVE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef ENABLE_VOX
|
#ifdef ENABLE_VOX
|
||||||
case MENU_VOX:
|
case MENU_VOX:
|
||||||
gSubMenuSelection = gEeprom.VOX_SWITCH ? gEeprom.VOX_LEVEL + 1 : 0;
|
gSubMenuSelection = gEeprom.VOX_SWITCH ? gEeprom.VOX_LEVEL + 1 : 0;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case MENU_ABR:
|
case MENU_ABR:
|
||||||
gSubMenuSelection = gEeprom.BACKLIGHT;
|
gSubMenuSelection = gEeprom.BACKLIGHT_TIME;
|
||||||
|
break;
|
||||||
|
|
||||||
gBacklightCountdown = 0;
|
case MENU_ABR_MIN:
|
||||||
GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight ON while in backlight menu
|
gSubMenuSelection = gEeprom.BACKLIGHT_MIN;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_ABR_MAX:
|
||||||
|
gSubMenuSelection = gEeprom.BACKLIGHT_MAX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ABR_ON_TX_RX:
|
case MENU_ABR_ON_TX_RX:
|
||||||
@@ -963,11 +988,11 @@ void MENU_ShowCurrentSetting(void)
|
|||||||
gSubMenuSelection = gEeprom.TX_TIMEOUT_TIMER;
|
gSubMenuSelection = gEeprom.TX_TIMEOUT_TIMER;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
case MENU_VOICE:
|
case MENU_VOICE:
|
||||||
gSubMenuSelection = gEeprom.VOICE_PROMPT;
|
gSubMenuSelection = gEeprom.VOICE_PROMPT;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case MENU_SC_REV:
|
case MENU_SC_REV:
|
||||||
gSubMenuSelection = gEeprom.SCAN_RESUME_MODE;
|
gSubMenuSelection = gEeprom.SCAN_RESUME_MODE;
|
||||||
@@ -1001,11 +1026,11 @@ void MENU_ShowCurrentSetting(void)
|
|||||||
gSubMenuSelection = gEeprom.MIC_SENSITIVITY;
|
gSubMenuSelection = gEeprom.MIC_SENSITIVITY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef ENABLE_AUDIO_BAR
|
#ifdef ENABLE_AUDIO_BAR
|
||||||
case MENU_MIC_BAR:
|
case MENU_MIC_BAR:
|
||||||
gSubMenuSelection = gSetting_mic_bar;
|
gSubMenuSelection = gSetting_mic_bar;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case MENU_COMPAND:
|
case MENU_COMPAND:
|
||||||
gSubMenuSelection = gTxVfo->Compander;
|
gSubMenuSelection = gTxVfo->Compander;
|
||||||
@@ -1081,11 +1106,11 @@ void MENU_ShowCurrentSetting(void)
|
|||||||
gSubMenuSelection = gTxVfo->AM_mode;
|
gSubMenuSelection = gTxVfo->AM_mode;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef ENABLE_AM_FIX
|
#ifdef ENABLE_AM_FIX
|
||||||
case MENU_AM_FIX:
|
case MENU_AM_FIX:
|
||||||
gSubMenuSelection = gSetting_AM_fix;
|
gSubMenuSelection = gSetting_AM_fix;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_AM_FIX_TEST1
|
#ifdef ENABLE_AM_FIX_TEST1
|
||||||
case MENU_AM_FIX_TEST1:
|
case MENU_AM_FIX_TEST1:
|
||||||
@@ -1377,10 +1402,9 @@ static void MENU_Key_EXIT(bool bKeyPressed, bool bKeyHeld)
|
|||||||
|
|
||||||
gRequestDisplayScreen = DISPLAY_MAIN;
|
gRequestDisplayScreen = DISPLAY_MAIN;
|
||||||
|
|
||||||
if (gEeprom.BACKLIGHT == 0)
|
if (gEeprom.BACKLIGHT_TIME == 0) // backlight set to always off
|
||||||
{
|
{
|
||||||
gBacklightCountdown = 0;
|
BACKLIGHT_TurnOff(); // turn the backlight OFF
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight OFF
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1658,10 +1682,9 @@ static void MENU_Key_UP_DOWN(bool bKeyPressed, bool bKeyHeld, int8_t Direction)
|
|||||||
|
|
||||||
gRequestDisplayScreen = DISPLAY_MENU;
|
gRequestDisplayScreen = DISPLAY_MENU;
|
||||||
|
|
||||||
if (GetCurrentMenuId() != MENU_ABR && gEeprom.BACKLIGHT == 0)
|
if (GetCurrentMenuId() != MENU_ABR && gEeprom.BACKLIGHT_TIME == 0) // backlight always off and not in the backlight menu
|
||||||
{
|
{
|
||||||
gBacklightCountdown = 0;
|
BACKLIGHT_TurnOff();
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight OFF
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@@ -14,7 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../app/spectrum.h"
|
#include "app/spectrum.h"
|
||||||
|
#include "driver/backlight.h"
|
||||||
|
|
||||||
struct FrequencyBandInfo {
|
struct FrequencyBandInfo {
|
||||||
uint32_t lower;
|
uint32_t lower;
|
||||||
@@ -493,9 +494,9 @@ static void ToggleListeningBW() {
|
|||||||
static void ToggleBacklight() {
|
static void ToggleBacklight() {
|
||||||
settings.backlightState = !settings.backlightState;
|
settings.backlightState = !settings.backlightState;
|
||||||
if (settings.backlightState) {
|
if (settings.backlightState) {
|
||||||
GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
BACKLIGHT_TurnOn();
|
||||||
} else {
|
} else {
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
BACKLIGHT_TurnOff();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
#include "bsp/dp32g030/dma.h"
|
#include "bsp/dp32g030/dma.h"
|
||||||
#include "bsp/dp32g030/gpio.h"
|
#include "bsp/dp32g030/gpio.h"
|
||||||
#include "driver/aes.h"
|
#include "driver/aes.h"
|
||||||
|
#include "driver/backlight.h"
|
||||||
#include "driver/bk4819.h"
|
#include "driver/bk4819.h"
|
||||||
#include "driver/crc.h"
|
#include "driver/crc.h"
|
||||||
#include "driver/eeprom.h"
|
#include "driver/eeprom.h"
|
||||||
@@ -238,7 +239,7 @@ static void CMD_0514(const uint8_t *pBuffer)
|
|||||||
gSerialConfigCountDown_500ms = 12; // 6 sec
|
gSerialConfigCountDown_500ms = 12; // 6 sec
|
||||||
|
|
||||||
// turn the LCD backlight off
|
// turn the LCD backlight off
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
BACKLIGHT_TurnOff();
|
||||||
|
|
||||||
SendVersion();
|
SendVersion();
|
||||||
}
|
}
|
||||||
@@ -413,7 +414,7 @@ static void CMD_052F(const uint8_t *pBuffer)
|
|||||||
Timestamp = pCmd->Timestamp;
|
Timestamp = pCmd->Timestamp;
|
||||||
|
|
||||||
// turn the LCD backlight off
|
// turn the LCD backlight off
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
BACKLIGHT_TurnOff();
|
||||||
|
|
||||||
SendVersion();
|
SendVersion();
|
||||||
}
|
}
|
||||||
|
29
board.c
29
board.c
@@ -23,6 +23,7 @@
|
|||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "bsp/dp32g030/gpio.h"
|
#include "bsp/dp32g030/gpio.h"
|
||||||
#include "bsp/dp32g030/portcon.h"
|
#include "bsp/dp32g030/portcon.h"
|
||||||
|
#include "bsp/dp32g030/pwmplus.h"
|
||||||
#include "bsp/dp32g030/saradc.h"
|
#include "bsp/dp32g030/saradc.h"
|
||||||
#include "bsp/dp32g030/syscon.h"
|
#include "bsp/dp32g030/syscon.h"
|
||||||
#include "driver/adc.h"
|
#include "driver/adc.h"
|
||||||
@@ -94,8 +95,6 @@ void BOARD_GPIO_Init(void)
|
|||||||
| GPIO_DIR_6_MASK // INPUT
|
| GPIO_DIR_6_MASK // INPUT
|
||||||
);
|
);
|
||||||
GPIOB->DIR |= 0
|
GPIOB->DIR |= 0
|
||||||
// Back light
|
|
||||||
| GPIO_DIR_6_BITS_OUTPUT
|
|
||||||
// ST7565
|
// ST7565
|
||||||
| GPIO_DIR_9_BITS_OUTPUT
|
| GPIO_DIR_9_BITS_OUTPUT
|
||||||
// ST7565 + SWD IO
|
// ST7565 + SWD IO
|
||||||
@@ -189,8 +188,8 @@ void BOARD_PORTCON_Init(void)
|
|||||||
| PORTCON_PORTB_SEL0_B7_MASK
|
| PORTCON_PORTB_SEL0_B7_MASK
|
||||||
);
|
);
|
||||||
PORTCON_PORTB_SEL0 |= 0
|
PORTCON_PORTB_SEL0 |= 0
|
||||||
// Back light
|
// Back light PWM
|
||||||
| PORTCON_PORTB_SEL0_B6_BITS_GPIOB6
|
| PORTCON_PORTB_SEL0_B6_BITS_PWMP0_CH0
|
||||||
// SPI0 SSN
|
// SPI0 SSN
|
||||||
| PORTCON_PORTB_SEL0_B7_BITS_SPI0_SSN
|
| PORTCON_PORTB_SEL0_B7_BITS_SPI0_SSN
|
||||||
;
|
;
|
||||||
@@ -471,6 +470,23 @@ void BOARD_PORTCON_Init(void)
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void BacklightPWM_Init()
|
||||||
|
{
|
||||||
|
// 48MHz / 94 / 1024 ~ 500Hz
|
||||||
|
PWM_PLUS0_CLKSRC |= ((94) << 16);
|
||||||
|
PWM_PLUS0_PERIOD = 1023;
|
||||||
|
|
||||||
|
PWM_PLUS0_GEN =
|
||||||
|
PWMPLUS_GEN_CH0_OE_BITS_ENABLE |
|
||||||
|
PWMPLUS_GEN_CH0_OUTINV_BITS_ENABLE |
|
||||||
|
0;
|
||||||
|
|
||||||
|
PWM_PLUS0_CFG =
|
||||||
|
PWMPLUS_CFG_CNT_REP_BITS_ENABLE |
|
||||||
|
PWMPLUS_CFG_COUNTER_EN_BITS_ENABLE |
|
||||||
|
0;
|
||||||
|
}
|
||||||
|
|
||||||
void BOARD_ADC_Init(void)
|
void BOARD_ADC_Init(void)
|
||||||
{
|
{
|
||||||
ADC_Config_t Config;
|
ADC_Config_t Config;
|
||||||
@@ -508,6 +524,7 @@ void BOARD_Init(void)
|
|||||||
{
|
{
|
||||||
BOARD_PORTCON_Init();
|
BOARD_PORTCON_Init();
|
||||||
BOARD_GPIO_Init();
|
BOARD_GPIO_Init();
|
||||||
|
BacklightPWM_Init();
|
||||||
BOARD_ADC_Init();
|
BOARD_ADC_Init();
|
||||||
ST7565_Init(true);
|
ST7565_Init(true);
|
||||||
#ifdef ENABLE_FMRADIO
|
#ifdef ENABLE_FMRADIO
|
||||||
@@ -540,11 +557,13 @@ void BOARD_EEPROM_Init(void)
|
|||||||
|
|
||||||
// 0E78..0E7F
|
// 0E78..0E7F
|
||||||
EEPROM_ReadBuffer(0x0E78, Data, 8);
|
EEPROM_ReadBuffer(0x0E78, Data, 8);
|
||||||
|
gEeprom.BACKLIGHT_MAX = (Data[0] & 0xF) <= 10 ? (Data[0] & 0xF) : 10;
|
||||||
|
gEeprom.BACKLIGHT_MIN = (Data[0] >> 4) < gEeprom.BACKLIGHT_MAX ? (Data[0] >> 4) : 0;
|
||||||
gEeprom.CHANNEL_DISPLAY_MODE = (Data[1] < 4) ? Data[1] : MDF_FREQUENCY; // 4 instead of 3 - extra display mode
|
gEeprom.CHANNEL_DISPLAY_MODE = (Data[1] < 4) ? Data[1] : MDF_FREQUENCY; // 4 instead of 3 - extra display mode
|
||||||
gEeprom.CROSS_BAND_RX_TX = (Data[2] < 3) ? Data[2] : CROSS_BAND_OFF;
|
gEeprom.CROSS_BAND_RX_TX = (Data[2] < 3) ? Data[2] : CROSS_BAND_OFF;
|
||||||
gEeprom.BATTERY_SAVE = (Data[3] < 5) ? Data[3] : 4;
|
gEeprom.BATTERY_SAVE = (Data[3] < 5) ? Data[3] : 4;
|
||||||
gEeprom.DUAL_WATCH = (Data[4] < 3) ? Data[4] : DUAL_WATCH_CHAN_A;
|
gEeprom.DUAL_WATCH = (Data[4] < 3) ? Data[4] : DUAL_WATCH_CHAN_A;
|
||||||
gEeprom.BACKLIGHT = (Data[5] < ARRAY_SIZE(gSubMenu_BACKLIGHT)) ? Data[5] : 3;
|
gEeprom.BACKLIGHT_TIME = (Data[5] < ARRAY_SIZE(gSubMenu_BACKLIGHT)) ? Data[5] : 3;
|
||||||
gEeprom.TAIL_NOTE_ELIMINATION = (Data[6] < 2) ? Data[6] : false;
|
gEeprom.TAIL_NOTE_ELIMINATION = (Data[6] < 2) ? Data[6] : false;
|
||||||
gEeprom.VFO_OPEN = (Data[7] < 2) ? Data[7] : true;
|
gEeprom.VFO_OPEN = (Data[7] < 2) ? Data[7] : true;
|
||||||
|
|
||||||
|
146
bsp/dp32g030/pwmplus.h
Normal file
146
bsp/dp32g030/pwmplus.h
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
#ifndef HARDWARE_DP32G030_PWMPLUS_H
|
||||||
|
#define HARDWARE_DP32G030_PWMPLUS_H
|
||||||
|
|
||||||
|
#define PWM_PLUS0_BASE_ADDR 0x400B4000U
|
||||||
|
|
||||||
|
//---------------
|
||||||
|
|
||||||
|
#define PWMPLUS_CFG 0x00U
|
||||||
|
|
||||||
|
#define PWMPLUS_CFG_COUNTER_EN_SHIFT 0U
|
||||||
|
#define PWMPLUS_CFG_COUNTER_EN_WIDTH 1U
|
||||||
|
#define PWMPLUS_CFG_COUNTER_EN_MASK (((1U << PWMPLUS_CFG_COUNTER_EN_WIDTH) - 1U) << PWMPLUS_CFG_COUNTER_EN_SHIFT)
|
||||||
|
#define PWMPLUS_CFG_COUNTER_EN_VALUE_ENABLE 1U
|
||||||
|
#define PWMPLUS_CFG_COUNTER_EN_BITS_ENABLE (PWMPLUS_CFG_COUNTER_EN_VALUE_ENABLE << PWMPLUS_CFG_COUNTER_EN_SHIFT)
|
||||||
|
|
||||||
|
#define PWMPLUS_CFG_CNT_TYPE_SHIFT 1U
|
||||||
|
|
||||||
|
#define PWMPLUS_CFG_CNT_REP_SHIFT 2U
|
||||||
|
#define PWMPLUS_CFG_CNT_REP_WIDTH 1U
|
||||||
|
#define PWMPLUS_CFG_CNT_REP_VALUE_ENABLE 1U
|
||||||
|
#define PWMPLUS_CFG_CNT_REP_BITS_ENABLE (PWMPLUS_CFG_CNT_REP_VALUE_ENABLE << PWMPLUS_CFG_CNT_REP_SHIFT)
|
||||||
|
|
||||||
|
#define PWMPLUS_CFG_OUT_MODE_SHIFT 3U
|
||||||
|
#define PWMPLUS_CFG_OUT_MODE_VALUE_ENABLE 1U
|
||||||
|
#define PWMPLUS_CFG_OUT_MODE_BITS_ENABLE (PWMPLUS_CFG_OUT_MODE_VALUE_ENABLE << PWMPLUS_CFG_OUT_MODE_SHIFT)
|
||||||
|
|
||||||
|
#define PWMPLUS_CFG_AUTO_RELOAD_SHIFT 8U
|
||||||
|
|
||||||
|
//---------------
|
||||||
|
|
||||||
|
#define PWMPLUS_GEN 0x04U
|
||||||
|
|
||||||
|
#define PWMPLUS_GEN_CH0_OE_SHIFT 24U
|
||||||
|
#define PWMPLUS_GEN_CH0_OE_WIDTH 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_OE_VALUE_ENABLE 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_OE_BITS_ENABLE (PWMPLUS_GEN_CH0_OE_VALUE_ENABLE << PWMPLUS_GEN_CH0_OE_SHIFT)
|
||||||
|
|
||||||
|
#define PWMPLUS_GEN_CH0_OUTINV_SHIFT 16U
|
||||||
|
#define PWMPLUS_GEN_CH0_OUTINV_WIDTH 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_OUTINV_VALUE_ENABLE 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_OUTINV_BITS_ENABLE (PWMPLUS_GEN_CH0_OUTINV_VALUE_ENABLE << PWMPLUS_GEN_CH0_OUTINV_SHIFT)
|
||||||
|
|
||||||
|
#define PWMPLUS_GEN_CH0_START_SHIFT 8U
|
||||||
|
#define PWMPLUS_GEN_CH0_START_WIDTH 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_START_VALUE_ENABLE 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_START_BITS_ENABLE (PWMPLUS_GEN_CH0_START_VALUE_ENABLE << PWMPLUS_GEN_CH0_START_SHIFT)
|
||||||
|
|
||||||
|
#define PWMPLUS_GEN_CH0_IDLE_SHIFT 0U
|
||||||
|
#define PWMPLUS_GEN_CH0_IDLE_WIDTH 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_IDLE_VALUE_ENABLE 1U
|
||||||
|
#define PWMPLUS_GEN_CH0_IDLE_BITS_ENABLE (PWMPLUS_GEN_CH0_IDLE_VALUE_ENABLE << PWMPLUS_GEN_CH0_IDLE_SHIFT)
|
||||||
|
|
||||||
|
//---------------
|
||||||
|
|
||||||
|
#define PWMPLUS_CLKSRC 0x08U
|
||||||
|
#define PWMPLUS_BRAKE_CFG 0x0CU
|
||||||
|
#define PWMPLUS_MASK_LEV 0x10U
|
||||||
|
#define PWMPLUS_PERIOD 0x1CU
|
||||||
|
#define PWMPLUS_CH0_COMP 0x20U
|
||||||
|
#define PWMPLUS_CH1_COMP 0x24U
|
||||||
|
#define PWMPLUS_CH2_COMP 0x28U
|
||||||
|
#define PWMPLUS_CH0_DT 0x30U
|
||||||
|
#define PWMPLUS_CH1_DT 0x34U
|
||||||
|
#define PWMPLUS_CH2_DT 0x38U
|
||||||
|
#define PWMPLUS_TRIG_COMP 0x40U
|
||||||
|
#define PWMPLUS_TRIG_CFG 0x44U
|
||||||
|
#define PWMPLUS_IE 0x60U
|
||||||
|
#define PWMPLUS_IF 0x64U
|
||||||
|
#define PWMPLUS_SWLOAD 0x84U
|
||||||
|
#define PWMPLUS_MASK_EN 0x88
|
||||||
|
#define PWMPLUS_CNT_ST 0xE0
|
||||||
|
#define PWMPLUS_BRAKE_ST 0xE4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CFG_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CFG)
|
||||||
|
#define PWM_PLUS0_CFG (*(volatile uint32_t *)PWM_PLUS0_CFG_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_GEN_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_GEN)
|
||||||
|
#define PWM_PLUS0_GEN (*(volatile uint32_t *)PWM_PLUS0_GEN_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CLKSRC_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CLKSRC)
|
||||||
|
#define PWM_PLUS0_CLKSRC (*(volatile uint32_t *)PWM_PLUS0_CLKSRC_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_BRAKE_CFG_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_BRAKE_CFG)
|
||||||
|
#define PWM_PLUS0_BRAKE_CFG (*(volatile uint32_t *)PWM_PLUS0_BRAKE_CFG_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_MASK_LEV_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_MASK_LEV)
|
||||||
|
#define PWM_PLUS0_MASK_LEV (*(volatile uint32_t *)PWM_PLUS0_MASK_LEV_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_PERIOD_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_PERIOD)
|
||||||
|
#define PWM_PLUS0_PERIOD (*(volatile uint32_t *)PWM_PLUS0_PERIOD_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CH0_COMP_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CH0_COMP)
|
||||||
|
#define PWM_PLUS0_CH0_COMP (*(volatile uint32_t *)PWM_PLUS0_CH0_COMP_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CH1_COMP_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CH1_COMP)
|
||||||
|
#define PWM_PLUS0_CH1_COMP (*(volatile uint32_t *)PWM_PLUS0_CH1_COMP_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CH2_COMP_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CH2_COMP)
|
||||||
|
#define PWM_PLUS0_CH2_COMP (*(volatile uint32_t *)PWM_PLUS0_CH2_COMP_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CH0_DT_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CH0_DT)
|
||||||
|
#define PWM_PLUS0_CH0_DT (*(volatile uint32_t *)PWM_PLUS0_CH0_DT_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CH1_DT_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CH1_DT)
|
||||||
|
#define PWM_PLUS0_CH1_DT (*(volatile uint32_t *)PWM_PLUS0_CH1_DT_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CH2_DT_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CH2_DT)
|
||||||
|
#define PWM_PLUS0_CH2_DT (*(volatile uint32_t *)PWM_PLUS0_CH2_DT_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_TRIG_COMP_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_TRIG_COMP)
|
||||||
|
#define PWM_PLUS0_TRIG_COMP (*(volatile uint32_t *)PWM_PLUS0_TRIG_COMP_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_TRIG_CFG_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_TRIG_CFG)
|
||||||
|
#define PWM_PLUS0_TRIG_CFG (*(volatile uint32_t *)PWM_PLUS0_TRIG_CFG_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_IE_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_IE)
|
||||||
|
#define PWM_PLUS0_IE (*(volatile uint32_t *)PWM_PLUS0_IE_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_IF_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_IF)
|
||||||
|
#define PWM_PLUS0_IF (*(volatile uint32_t *)PWM_PLUS0_IF_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_SWLOAD_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_SWLOAD)
|
||||||
|
#define PWM_PLUS0_SWLOAD (*(volatile uint32_t *)PWM_PLUS0_SWLOAD_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_MASK_EN_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_MASK_EN)
|
||||||
|
#define PWM_PLUS0_MASK_EN (*(volatile uint32_t *)PWM_PLUS0_MASK_EN_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_CNT_ST_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_CNT_ST)
|
||||||
|
#define PWM_PLUS0_CNT_ST (*(volatile uint32_t *)PWM_PLUS0_CNT_ST_ADDR)
|
||||||
|
|
||||||
|
#define PWM_PLUS0_BRAKE_ST_ADDR (PWM_PLUS0_BASE_ADDR + PWMPLUS_BRAKE_ST)
|
||||||
|
#define PWM_PLUS0_BRAKE_ST (*(volatile uint32_t *)PWM_PLUS0_BRAKE_ST_ADDR)
|
||||||
|
|
||||||
|
#endif
|
@@ -16,21 +16,25 @@
|
|||||||
|
|
||||||
#include "backlight.h"
|
#include "backlight.h"
|
||||||
#include "bsp/dp32g030/gpio.h"
|
#include "bsp/dp32g030/gpio.h"
|
||||||
|
#include "bsp/dp32g030/pwmplus.h"
|
||||||
#include "driver/gpio.h"
|
#include "driver/gpio.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
// this is decremented once every 500ms
|
// this is decremented once every 500ms
|
||||||
uint16_t gBacklightCountdown = 0;
|
uint16_t gBacklightCountdown = 0;
|
||||||
|
bool backlightOn;
|
||||||
|
|
||||||
void BACKLIGHT_TurnOn(void)
|
void BACKLIGHT_TurnOn(void)
|
||||||
{
|
{
|
||||||
if (gEeprom.BACKLIGHT == 0)
|
if (gEeprom.BACKLIGHT_TIME == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// turn the backlight ON
|
backlightOn = true;
|
||||||
GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
|
||||||
|
|
||||||
switch (gEeprom.BACKLIGHT)
|
// turn the backlight ON
|
||||||
|
BACKLIGHT_SetBrightness(gEeprom.BACKLIGHT_MAX);
|
||||||
|
|
||||||
|
switch (gEeprom.BACKLIGHT_TIME)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case 1: // 5 sec
|
case 1: // 5 sec
|
||||||
@@ -58,3 +62,21 @@ void BACKLIGHT_TurnOn(void)
|
|||||||
|
|
||||||
gBacklightCountdown *= 2;
|
gBacklightCountdown *= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BACKLIGHT_TurnOff()
|
||||||
|
{
|
||||||
|
BACKLIGHT_SetBrightness(gEeprom.BACKLIGHT_MIN);
|
||||||
|
gBacklightCountdown = 0;
|
||||||
|
backlightOn = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BACKLIGHT_IsOn()
|
||||||
|
{
|
||||||
|
return backlightOn;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BACKLIGHT_SetBrightness(uint8_t brigtness)
|
||||||
|
{
|
||||||
|
PWM_PLUS0_CH0_COMP = (1 << brigtness) - 1;
|
||||||
|
//PWM_PLUS0_SWLOAD = 1;
|
||||||
|
}
|
@@ -18,10 +18,15 @@
|
|||||||
#define DRIVER_BACKLIGHT_H
|
#define DRIVER_BACKLIGHT_H
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
extern uint16_t gBacklightCountdown;
|
extern uint16_t gBacklightCountdown;
|
||||||
|
extern uint8_t gBacklightBrightness;
|
||||||
|
|
||||||
void BACKLIGHT_TurnOn(void);
|
void BACKLIGHT_TurnOn();
|
||||||
|
void BACKLIGHT_TurnOff();
|
||||||
|
bool BACKLIGHT_IsOn();
|
||||||
|
void BACKLIGHT_SetBrightness(uint8_t brigtness);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
9
main.c
9
main.c
@@ -61,7 +61,8 @@ void Main(void)
|
|||||||
| SYSCON_DEV_CLK_GATE_SPI0_BITS_ENABLE
|
| SYSCON_DEV_CLK_GATE_SPI0_BITS_ENABLE
|
||||||
| SYSCON_DEV_CLK_GATE_SARADC_BITS_ENABLE
|
| SYSCON_DEV_CLK_GATE_SARADC_BITS_ENABLE
|
||||||
| SYSCON_DEV_CLK_GATE_CRC_BITS_ENABLE
|
| SYSCON_DEV_CLK_GATE_CRC_BITS_ENABLE
|
||||||
| SYSCON_DEV_CLK_GATE_AES_BITS_ENABLE;
|
| SYSCON_DEV_CLK_GATE_AES_BITS_ENABLE
|
||||||
|
| SYSCON_DEV_CLK_GATE_PWM_PLUS0_BITS_ENABLE;
|
||||||
|
|
||||||
SYSTICK_Init();
|
SYSTICK_Init();
|
||||||
BOARD_Init();
|
BOARD_Init();
|
||||||
@@ -140,10 +141,10 @@ void Main(void)
|
|||||||
{
|
{
|
||||||
FUNCTION_Select(FUNCTION_POWER_SAVE);
|
FUNCTION_Select(FUNCTION_POWER_SAVE);
|
||||||
|
|
||||||
if (gEeprom.BACKLIGHT < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1))
|
if (gEeprom.BACKLIGHT_TIME < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1)) // backlight is not set to be always on
|
||||||
GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight OFF
|
BACKLIGHT_TurnOff(); // turn the backlight OFF
|
||||||
else
|
else
|
||||||
GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight ON
|
BACKLIGHT_TurnOn(); // turn the backlight ON
|
||||||
|
|
||||||
gReducedService = true;
|
gReducedService = true;
|
||||||
}
|
}
|
||||||
|
14
settings.c
14
settings.c
@@ -96,12 +96,12 @@ void SETTINGS_SaveSettings(void)
|
|||||||
State[7] = gEeprom.MIC_SENSITIVITY;
|
State[7] = gEeprom.MIC_SENSITIVITY;
|
||||||
EEPROM_WriteBuffer(0x0E70, State);
|
EEPROM_WriteBuffer(0x0E70, State);
|
||||||
|
|
||||||
State[0] = 0xFF;
|
State[0] = (gEeprom.BACKLIGHT_MIN << 4) + gEeprom.BACKLIGHT_MAX;
|
||||||
State[1] = gEeprom.CHANNEL_DISPLAY_MODE;
|
State[1] = gEeprom.CHANNEL_DISPLAY_MODE;
|
||||||
State[2] = gEeprom.CROSS_BAND_RX_TX;
|
State[2] = gEeprom.CROSS_BAND_RX_TX;
|
||||||
State[3] = gEeprom.BATTERY_SAVE;
|
State[3] = gEeprom.BATTERY_SAVE;
|
||||||
State[4] = gEeprom.DUAL_WATCH;
|
State[4] = gEeprom.DUAL_WATCH;
|
||||||
State[5] = gEeprom.BACKLIGHT;
|
State[5] = gEeprom.BACKLIGHT_TIME;
|
||||||
State[6] = gEeprom.TAIL_NOTE_ELIMINATION;
|
State[6] = gEeprom.TAIL_NOTE_ELIMINATION;
|
||||||
State[7] = gEeprom.VFO_OPEN;
|
State[7] = gEeprom.VFO_OPEN;
|
||||||
EEPROM_WriteBuffer(0x0E78, State);
|
EEPROM_WriteBuffer(0x0E78, State);
|
||||||
@@ -123,11 +123,11 @@ void SETTINGS_SaveSettings(void)
|
|||||||
#endif
|
#endif
|
||||||
EEPROM_WriteBuffer(0x0E98, Password);
|
EEPROM_WriteBuffer(0x0E98, Password);
|
||||||
|
|
||||||
#ifdef ENABLE_VOICE
|
memset(State, 0xFF, sizeof(State));
|
||||||
memset(State, 0xFF, sizeof(State));
|
#ifdef ENABLE_VOICE
|
||||||
State[0] = gEeprom.VOICE_PROMPT;
|
State[0] = gEeprom.VOICE_PROMPT;
|
||||||
EEPROM_WriteBuffer(0x0EA0, State);
|
EEPROM_WriteBuffer(0x0EA0, State);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
|
#if defined(ENABLE_ALARM) || defined(ENABLE_TX1750)
|
||||||
State[0] = gEeprom.ALARM_MODE;
|
State[0] = gEeprom.ALARM_MODE;
|
||||||
|
@@ -160,7 +160,7 @@ typedef struct {
|
|||||||
uint8_t DUAL_WATCH;
|
uint8_t DUAL_WATCH;
|
||||||
uint8_t CROSS_BAND_RX_TX;
|
uint8_t CROSS_BAND_RX_TX;
|
||||||
uint8_t BATTERY_SAVE;
|
uint8_t BATTERY_SAVE;
|
||||||
uint8_t BACKLIGHT;
|
uint8_t BACKLIGHT_TIME;
|
||||||
uint8_t SCAN_RESUME_MODE;
|
uint8_t SCAN_RESUME_MODE;
|
||||||
uint8_t SCAN_LIST_DEFAULT;
|
uint8_t SCAN_LIST_DEFAULT;
|
||||||
bool SCAN_LIST_ENABLED[2];
|
bool SCAN_LIST_ENABLED[2];
|
||||||
@@ -228,6 +228,8 @@ typedef struct {
|
|||||||
uint8_t field79_0x97;
|
uint8_t field79_0x97;
|
||||||
|
|
||||||
uint8_t KEY_M_LONG_PRESS_ACTION;
|
uint8_t KEY_M_LONG_PRESS_ACTION;
|
||||||
|
uint8_t BACKLIGHT_MIN;
|
||||||
|
uint8_t BACKLIGHT_MAX;
|
||||||
} EEPROM_Config_t;
|
} EEPROM_Config_t;
|
||||||
|
|
||||||
extern EEPROM_Config_t gEeprom;
|
extern EEPROM_Config_t gEeprom;
|
||||||
|
12
ui/menu.c
12
ui/menu.c
@@ -83,6 +83,8 @@ const t_menu_item MenuList[] =
|
|||||||
{"POnMsg", VOICE_ID_INVALID, MENU_PONMSG },
|
{"POnMsg", VOICE_ID_INVALID, MENU_PONMSG },
|
||||||
{"BatTxt", VOICE_ID_INVALID, MENU_BAT_TXT },
|
{"BatTxt", VOICE_ID_INVALID, MENU_BAT_TXT },
|
||||||
{"BackLt", VOICE_ID_INVALID, MENU_ABR }, // was "ABR"
|
{"BackLt", VOICE_ID_INVALID, MENU_ABR }, // was "ABR"
|
||||||
|
{"BLMin", VOICE_ID_INVALID, MENU_ABR_MIN },
|
||||||
|
{"BLMax", VOICE_ID_INVALID, MENU_ABR_MAX },
|
||||||
{"BltTRX", VOICE_ID_INVALID, MENU_ABR_ON_TX_RX },
|
{"BltTRX", VOICE_ID_INVALID, MENU_ABR_ON_TX_RX },
|
||||||
{"Beep", VOICE_ID_BEEP_PROMPT, MENU_BEEP },
|
{"Beep", VOICE_ID_BEEP_PROMPT, MENU_BEEP },
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
@@ -590,6 +592,16 @@ void UI_DisplayMenu(void)
|
|||||||
|
|
||||||
case MENU_ABR:
|
case MENU_ABR:
|
||||||
strcpy(String, gSubMenu_BACKLIGHT[gSubMenuSelection]);
|
strcpy(String, gSubMenu_BACKLIGHT[gSubMenuSelection]);
|
||||||
|
BACKLIGHT_SetBrightness(-1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MENU_ABR_MIN:
|
||||||
|
case MENU_ABR_MAX:
|
||||||
|
sprintf(String, "%d", gSubMenuSelection);
|
||||||
|
if(gIsInSubMenu)
|
||||||
|
BACKLIGHT_SetBrightness(gSubMenuSelection);
|
||||||
|
else
|
||||||
|
BACKLIGHT_SetBrightness(-1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_AM:
|
case MENU_AM:
|
||||||
|
Reference in New Issue
Block a user