[wip] added amplitude helper
This commit is contained in:
@@ -232,6 +232,24 @@ static void _moveToRighttFocusFreqNumber(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void _setTo0_01xFocusNumber(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)
|
switch (_app_data->curr_state_lay)
|
||||||
{
|
{
|
||||||
@@ -247,39 +265,23 @@ static void _setTo0_01xFocusNumber(void)
|
|||||||
|
|
||||||
_app_data->timer_blink[last_key] = 2;
|
_app_data->timer_blink[last_key] = 2;
|
||||||
_app_data->isButtonBlink |= (1 << last_key);
|
_app_data->isButtonBlink |= (1 << last_key);
|
||||||
}
|
_app_data->isValueChange = 1;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
static void _setTo1xFocusNumber(void)
|
static void _setTo1xFocusNumber(void)
|
||||||
{
|
{
|
||||||
switch (_app_data->curr_state_lay)
|
switch (_app_data->curr_state_lay)
|
||||||
{
|
{
|
||||||
case LAY_AMPL:
|
case LAY_AMPL:
|
||||||
_app_data->ampl_focus_digit = 10;
|
_app_data->ampl_focus_digit = 2;
|
||||||
break;
|
break;
|
||||||
case LAY_OFFS:
|
case LAY_OFFS:
|
||||||
_app_data->offs_focus_digit = 10;
|
_app_data->offs_focus_digit = 2;
|
||||||
break;
|
break;
|
||||||
case LAY_PHAS:
|
case LAY_PHAS:
|
||||||
_app_data->offs_focus_digit = 1;
|
_app_data->offs_focus_digit = 0;
|
||||||
break;
|
break;
|
||||||
case LAY_DUTY:
|
case LAY_DUTY:
|
||||||
_app_data->offs_focus_digit = 1;
|
_app_data->offs_focus_digit = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -287,22 +289,23 @@ static void _setTo1xFocusNumber(void)
|
|||||||
|
|
||||||
_app_data->timer_blink[last_key] = 2;
|
_app_data->timer_blink[last_key] = 2;
|
||||||
_app_data->isButtonBlink |= (1 << last_key);
|
_app_data->isButtonBlink |= (1 << last_key);
|
||||||
|
_app_data->isValueChange = 1;
|
||||||
}
|
}
|
||||||
static void _setTo10xFocusNumber(void)
|
static void _setTo10xFocusNumber(void)
|
||||||
{
|
{
|
||||||
switch (_app_data->curr_state_lay)
|
switch (_app_data->curr_state_lay)
|
||||||
{
|
{
|
||||||
case LAY_AMPL:
|
case LAY_AMPL:
|
||||||
_app_data->ampl_focus_digit = 100;
|
_app_data->ampl_focus_digit = 3;
|
||||||
break;
|
break;
|
||||||
case LAY_OFFS:
|
case LAY_OFFS:
|
||||||
_app_data->offs_focus_digit = 100;
|
_app_data->offs_focus_digit = 3;
|
||||||
break;
|
break;
|
||||||
case LAY_PHAS:
|
case LAY_PHAS:
|
||||||
_app_data->offs_focus_digit = 10;
|
_app_data->offs_focus_digit = 1;
|
||||||
break;
|
break;
|
||||||
case LAY_DUTY:
|
case LAY_DUTY:
|
||||||
_app_data->offs_focus_digit = 10;
|
_app_data->offs_focus_digit = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -310,6 +313,7 @@ static void _setTo10xFocusNumber(void)
|
|||||||
|
|
||||||
_app_data->timer_blink[last_key] = 2;
|
_app_data->timer_blink[last_key] = 2;
|
||||||
_app_data->isButtonBlink |= (1 << last_key);
|
_app_data->isButtonBlink |= (1 << last_key);
|
||||||
|
_app_data->isValueChange = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const CMD_button_t btn_command[BTN_STATE_MAX][DISP_BTN_MAX] = {
|
static const CMD_button_t btn_command[BTN_STATE_MAX][DISP_BTN_MAX] = {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "hw_button.h"
|
#include "hw_button.h"
|
||||||
#include "ctrl_button.h"
|
|
||||||
#include "ctrl_channel_button.h"
|
#include "ctrl_channel_button.h"
|
||||||
|
|
||||||
#define DUMMY_GPIO_Port GPIOA
|
#define DUMMY_GPIO_Port GPIOA
|
||||||
@@ -61,4 +60,9 @@ void CTRL_channelButtonsHandler(void)
|
|||||||
{
|
{
|
||||||
buttonHandler(&channel_buttons[btn_key]);
|
buttonHandler(&channel_buttons[btn_key]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak void CTRL_pushedChanBtnEvent(ButtonKey_t *key)
|
||||||
|
{
|
||||||
|
UNUSED(key);
|
||||||
}
|
}
|
||||||
@@ -12,4 +12,5 @@ typedef enum
|
|||||||
} HW_chanBtnName_t;
|
} HW_chanBtnName_t;
|
||||||
|
|
||||||
void CTRL_channelButtonInit(void);
|
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"
|
#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 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
|
// clang-format off
|
||||||
const GFX_bitmap_t marker = {05, 03, (uint8_t[]){0xF9,0xFB,0xFF,0xFB,0xF9,}};
|
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);
|
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];
|
uint8_t data[8];
|
||||||
snprintf((char *)data, 8, "%02d.%02d V", ampl / 100, ampl % 100);
|
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];
|
uint8_t data[8];
|
||||||
// snprintf((char *)data, 8, "%+4.2f V", offs);
|
|
||||||
snprintf((char *)data, 8, "%+01d.%02d V", offs / 100, offs % 100);
|
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];
|
uint8_t data[8];
|
||||||
snprintf((char *)data, 8, "%03u'", phase);
|
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];
|
uint8_t data[8];
|
||||||
snprintf((char *)data, 8, "%03u%%", duty);
|
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)
|
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;
|
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)
|
static void _drawMeterHelper(GFX_display_t *disp, char *min, char *max, uint8_t pos)
|
||||||
{
|
{
|
||||||
DISP_drawPixel(disp, 64, 40, GFX_WHITE);
|
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_clearRegion(disp, 64, 13, 66, 40);
|
||||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"F:", 64, 20, BM_NORMAL);
|
DISP_writeString(disp, &font5x7Info, (uint8_t *)"F:", 64, 20, BM_NORMAL);
|
||||||
_drawFreqValue(disp, freq, 20);
|
_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)
|
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:
|
case LAY_FREQ:
|
||||||
_drawFreqValueHelper(disp, fun_gen->frequency, app_data->freq_focus_digit);
|
_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;
|
break;
|
||||||
case LAY_AMPL:
|
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;
|
break;
|
||||||
case LAY_OFFS:
|
case LAY_OFFS:
|
||||||
_drawOffsValue(disp, fun_gen->offset);
|
|
||||||
break;
|
break;
|
||||||
case LAY_PHAS:
|
case LAY_PHAS:
|
||||||
_drawPhasValue(disp, fun_gen->phase);
|
|
||||||
break;
|
break;
|
||||||
case LAY_MAIN:
|
case LAY_MAIN:
|
||||||
DISP_clearRegion(disp, 62, 13, 66, 40);
|
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);
|
DISP_writeString(disp, &font5x7Info, (uint8_t *)"P:", 64, 43, BM_NORMAL);
|
||||||
|
|
||||||
_drawFreqValue(disp, fun_gen->frequency, 13);
|
_drawFreqValue(disp, fun_gen->frequency, 13);
|
||||||
_drawAmplValue(disp, fun_gen->amplitude);
|
_drawAmplValue(disp, fun_gen->amplitude, 23);
|
||||||
_drawOffsValue(disp, fun_gen->offset);
|
_drawOffsValue(disp, fun_gen->offset, 33);
|
||||||
_drawPhasValue(disp, fun_gen->phase);
|
_drawPhasValue(disp, fun_gen->phase, 43);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
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)
|
static void _drawPwmGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||||
{
|
{
|
||||||
GEN_pwm_t *pwm_gen = app_data->generator;
|
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)
|
static void _drawValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||||
|
|||||||
Reference in New Issue
Block a user