[wip] added amplitude helper
This commit is contained in:
@@ -232,6 +232,24 @@ static void _moveToRighttFocusFreqNumber(void)
|
||||
}
|
||||
|
||||
static void _setTo0_01xFocusNumber(void)
|
||||
{
|
||||
switch (_app_data->curr_state_lay)
|
||||
{
|
||||
case LAY_AMPL:
|
||||
_app_data->ampl_focus_digit = 0;
|
||||
break;
|
||||
case LAY_OFFS:
|
||||
_app_data->offs_focus_digit = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
_app_data->timer_blink[last_key] = 2;
|
||||
_app_data->isButtonBlink |= (1 << last_key);
|
||||
_app_data->isValueChange = 1;
|
||||
}
|
||||
static void _setTo0_1xFocusNumber(void)
|
||||
{
|
||||
switch (_app_data->curr_state_lay)
|
||||
{
|
||||
@@ -247,39 +265,23 @@ static void _setTo0_01xFocusNumber(void)
|
||||
|
||||
_app_data->timer_blink[last_key] = 2;
|
||||
_app_data->isButtonBlink |= (1 << last_key);
|
||||
}
|
||||
static void _setTo0_1xFocusNumber(void)
|
||||
{
|
||||
switch (_app_data->curr_state_lay)
|
||||
{
|
||||
case LAY_AMPL:
|
||||
_app_data->ampl_focus_digit = 10;
|
||||
break;
|
||||
case LAY_OFFS:
|
||||
_app_data->offs_focus_digit = 10;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
_app_data->timer_blink[last_key] = 2;
|
||||
_app_data->isButtonBlink |= (1 << last_key);
|
||||
_app_data->isValueChange = 1;
|
||||
}
|
||||
static void _setTo1xFocusNumber(void)
|
||||
{
|
||||
switch (_app_data->curr_state_lay)
|
||||
{
|
||||
case LAY_AMPL:
|
||||
_app_data->ampl_focus_digit = 10;
|
||||
_app_data->ampl_focus_digit = 2;
|
||||
break;
|
||||
case LAY_OFFS:
|
||||
_app_data->offs_focus_digit = 10;
|
||||
_app_data->offs_focus_digit = 2;
|
||||
break;
|
||||
case LAY_PHAS:
|
||||
_app_data->offs_focus_digit = 1;
|
||||
_app_data->offs_focus_digit = 0;
|
||||
break;
|
||||
case LAY_DUTY:
|
||||
_app_data->offs_focus_digit = 1;
|
||||
_app_data->offs_focus_digit = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -287,22 +289,23 @@ static void _setTo1xFocusNumber(void)
|
||||
|
||||
_app_data->timer_blink[last_key] = 2;
|
||||
_app_data->isButtonBlink |= (1 << last_key);
|
||||
_app_data->isValueChange = 1;
|
||||
}
|
||||
static void _setTo10xFocusNumber(void)
|
||||
{
|
||||
switch (_app_data->curr_state_lay)
|
||||
{
|
||||
case LAY_AMPL:
|
||||
_app_data->ampl_focus_digit = 100;
|
||||
_app_data->ampl_focus_digit = 3;
|
||||
break;
|
||||
case LAY_OFFS:
|
||||
_app_data->offs_focus_digit = 100;
|
||||
_app_data->offs_focus_digit = 3;
|
||||
break;
|
||||
case LAY_PHAS:
|
||||
_app_data->offs_focus_digit = 10;
|
||||
_app_data->offs_focus_digit = 1;
|
||||
break;
|
||||
case LAY_DUTY:
|
||||
_app_data->offs_focus_digit = 10;
|
||||
_app_data->offs_focus_digit = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -310,6 +313,7 @@ static void _setTo10xFocusNumber(void)
|
||||
|
||||
_app_data->timer_blink[last_key] = 2;
|
||||
_app_data->isButtonBlink |= (1 << last_key);
|
||||
_app_data->isValueChange = 1;
|
||||
}
|
||||
|
||||
static const CMD_button_t btn_command[BTN_STATE_MAX][DISP_BTN_MAX] = {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#include "main.h"
|
||||
#include "hw_button.h"
|
||||
#include "ctrl_button.h"
|
||||
#include "ctrl_channel_button.h"
|
||||
|
||||
#define DUMMY_GPIO_Port GPIOA
|
||||
@@ -61,4 +60,9 @@ void CTRL_channelButtonsHandler(void)
|
||||
{
|
||||
buttonHandler(&channel_buttons[btn_key]);
|
||||
}
|
||||
}
|
||||
|
||||
__weak void CTRL_pushedChanBtnEvent(ButtonKey_t *key)
|
||||
{
|
||||
UNUSED(key);
|
||||
}
|
||||
@@ -12,4 +12,5 @@ typedef enum
|
||||
} HW_chanBtnName_t;
|
||||
|
||||
void CTRL_channelButtonInit(void);
|
||||
void CTRL_channelButtonsHandler(void);
|
||||
void CTRL_channelButtonsHandler(void);
|
||||
void CTRL_pushedChanBtnEvent(ButtonKey_t *key);
|
||||
@@ -5,8 +5,12 @@
|
||||
|
||||
#include "disp_layout.h"
|
||||
|
||||
#define FREQ_MAX_DIGIT 7
|
||||
#define AMPL_MAX_DIGIT 3
|
||||
|
||||
const uint8_t btn_pos_x[DISP_BTN_MAX] = {0, 26, 52, 78, 104};
|
||||
const uint8_t marker_freq_pos_X[7] = {76, 84, 90, 96, 105, 111, 118};
|
||||
const uint8_t marker_freq_pos_x[FREQ_MAX_DIGIT] = {76, 84, 90, 96, 105, 111, 118};
|
||||
const uint8_t marker_ampl_pos_x[AMPL_MAX_DIGIT] = {82, 94, 100};
|
||||
|
||||
// clang-format off
|
||||
const GFX_bitmap_t marker = {05, 03, (uint8_t[]){0xF9,0xFB,0xFF,0xFB,0xF9,}};
|
||||
@@ -23,36 +27,32 @@ static void _drawFreqValue(GFX_display_t *disp, uint32_t freq, uint8_t pos_y)
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t[]){data[4], data[5], data[6], 0}, 105, pos_y, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawAmplValue(GFX_display_t *disp, uint16_t ampl)
|
||||
static void _drawAmplValue(GFX_display_t *disp, uint16_t ampl, uint8_t pos_y)
|
||||
{
|
||||
uint8_t data[8];
|
||||
snprintf((char *)data, 8, "%02d.%02d V", ampl / 100, ampl % 100);
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, 23, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawOffsValue(GFX_display_t *disp, uint16_t offs)
|
||||
static void _drawOffsValue(GFX_display_t *disp, uint16_t offs, uint8_t pos_y)
|
||||
{
|
||||
// float offs = getOffsetValue();
|
||||
uint8_t data[8];
|
||||
// snprintf((char *)data, 8, "%+4.2f V", offs);
|
||||
snprintf((char *)data, 8, "%+01d.%02d V", offs / 100, offs % 100);
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, 33, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawPhasValue(GFX_display_t *disp, uint16_t phase)
|
||||
static void _drawPhasValue(GFX_display_t *disp, uint16_t phase, uint8_t pos_y)
|
||||
{
|
||||
// uint32_t phase = getPhaseValue();
|
||||
uint8_t data[8];
|
||||
snprintf((char *)data, 8, "%03u'", phase);
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, 43, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawDutyValue(GFX_display_t *disp, uint8_t duty)
|
||||
static void _drawDutyValue(GFX_display_t *disp, uint8_t duty, uint8_t pos_y)
|
||||
{
|
||||
// uint32_t duty = getDutyValue();
|
||||
uint8_t data[8];
|
||||
snprintf((char *)data, 8, "%03u%%", duty);
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, 43, BM_NORMAL); // zmien pozycje!!!!!!!!
|
||||
DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _blinkButtons(GFX_display_t *disp, APP_data_t *app_data)
|
||||
@@ -95,6 +95,11 @@ static void _drawButtons(GFX_display_t *disp, APP_data_t *app_data)
|
||||
app_data->isButtonChange = 0;
|
||||
}
|
||||
|
||||
static uint8_t _calcMarkePos(uint32_t value, uint32_t max)
|
||||
{
|
||||
return ((62 * value) + (max / 2)) / max;
|
||||
}
|
||||
|
||||
static void _drawMeterHelper(GFX_display_t *disp, char *min, char *max, uint8_t pos)
|
||||
{
|
||||
DISP_drawPixel(disp, 64, 40, GFX_WHITE);
|
||||
@@ -111,12 +116,15 @@ static void _drawFreqValueHelper(GFX_display_t *disp, uint32_t freq, uint8_t foc
|
||||
DISP_clearRegion(disp, 64, 13, 66, 40);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"F:", 64, 20, BM_NORMAL);
|
||||
_drawFreqValue(disp, freq, 20);
|
||||
DISP_drawBitmap(disp, &marker, marker_freq_pos_X[6 - focus_digit], 15, BM_NORMAL);
|
||||
DISP_drawBitmap(disp, &marker, marker_freq_pos_x[(FREQ_MAX_DIGIT - 1) - focus_digit], 15, BM_NORMAL);
|
||||
}
|
||||
|
||||
static uint8_t _calcMarkePos(uint32_t value, uint32_t max)
|
||||
static void _drawAmplValueHelper(GFX_display_t *disp, uint32_t ampl, uint8_t focus_digit)
|
||||
{
|
||||
return ((62 * value) + (max / 2)) / max;
|
||||
DISP_clearRegion(disp, 64, 13, 66, 40);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"A:", 64, 20, BM_NORMAL);
|
||||
_drawAmplValue(disp, ampl, 20);
|
||||
DISP_drawBitmap(disp, &marker, marker_ampl_pos_x[(AMPL_MAX_DIGIT - 1) - focus_digit], 15, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawFuncGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
@@ -126,16 +134,15 @@ static void _drawFuncGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
{
|
||||
case LAY_FREQ:
|
||||
_drawFreqValueHelper(disp, fun_gen->frequency, app_data->freq_focus_digit);
|
||||
_drawMeterHelper(disp, "1", "1M", _calcMarkePos(900000, 1000000));
|
||||
_drawMeterHelper(disp, "1", "1M", _calcMarkePos(990000, 1000000));
|
||||
break;
|
||||
case LAY_AMPL:
|
||||
_drawAmplValue(disp, fun_gen->amplitude);
|
||||
_drawAmplValueHelper(disp, fun_gen->amplitude, app_data->ampl_focus_digit);
|
||||
_drawMeterHelper(disp, "0V", "5V", _calcMarkePos(100, 500));
|
||||
break;
|
||||
case LAY_OFFS:
|
||||
_drawOffsValue(disp, fun_gen->offset);
|
||||
break;
|
||||
case LAY_PHAS:
|
||||
_drawPhasValue(disp, fun_gen->phase);
|
||||
break;
|
||||
case LAY_MAIN:
|
||||
DISP_clearRegion(disp, 62, 13, 66, 40);
|
||||
@@ -145,9 +152,9 @@ static void _drawFuncGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"P:", 64, 43, BM_NORMAL);
|
||||
|
||||
_drawFreqValue(disp, fun_gen->frequency, 13);
|
||||
_drawAmplValue(disp, fun_gen->amplitude);
|
||||
_drawOffsValue(disp, fun_gen->offset);
|
||||
_drawPhasValue(disp, fun_gen->phase);
|
||||
_drawAmplValue(disp, fun_gen->amplitude, 23);
|
||||
_drawOffsValue(disp, fun_gen->offset, 33);
|
||||
_drawPhasValue(disp, fun_gen->phase, 43);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -159,17 +166,6 @@ static void _drawFuncGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
static void _drawPwmGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
{
|
||||
GEN_pwm_t *pwm_gen = app_data->generator;
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"F:", 64, 13, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"A:", 64, 23, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"O:", 64, 33, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"P:", 64, 43, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"D:", 64, 43, BM_NORMAL);
|
||||
|
||||
_drawFreqValue(disp, pwm_gen->frequency, 13);
|
||||
_drawAmplValue(disp, pwm_gen->amplitude / 100);
|
||||
_drawOffsValue(disp, pwm_gen->offset / 100);
|
||||
_drawPhasValue(disp, pwm_gen->phase);
|
||||
_drawDutyValue(disp, pwm_gen->duty);
|
||||
}
|
||||
|
||||
static void _drawValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
|
||||
Reference in New Issue
Block a user