[wip] added encoder

This commit is contained in:
2023-05-01 13:26:02 +02:00
parent b4dd5c789c
commit f729829cb2
14 changed files with 981 additions and 443 deletions

View File

@@ -16,6 +16,7 @@
const uint8_t btn_pos_x[DISP_BTN_MAX] = {0, 26, 52, 78, 104};
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};
const uint8_t marker_phas_pos_x[AMPL_MAX_DIGIT] = {82, 88, 96};
// clang-format off
const GFX_bitmap_t marker_down = {05, 03, (uint8_t[]){0x01,0x03,0x07,0x03,0x01}};// res: 5x3(8) - 5 bytes
@@ -28,7 +29,6 @@ static void _drawFreqValue(GFX_display_t *disp, uint32_t freq, uint8_t pos_y)
uint8_t data[8];
snprintf((char *)data, 8, "%07u", freq);
DISP_writeString(disp, &font5x7Info, (uint8_t[]){data[0], 0}, 76, pos_y, BM_NORMAL);
DISP_writeString(disp, &font5x7Info, (uint8_t[]){data[0], 0}, 76, pos_y, BM_NORMAL);
DISP_writeString(disp, &font5x7Info, (uint8_t[]){data[1], data[2], data[3], 0}, 84, pos_y, BM_NORMAL);
DISP_writeString(disp, &font5x7Info, (uint8_t[]){data[4], data[5], data[6], 0}, 105, pos_y, BM_NORMAL);
}
@@ -44,6 +44,10 @@ static void _drawOffsValue(GFX_display_t *disp, int16_t offs, uint8_t pos_y)
{
uint8_t data[8];
snprintf((char *)data, 8, "%+01d.%02d V", offs / 100, abs(offs) % 100);
if (offs < 0)
{
data[0] = '-';
}
DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
}
@@ -54,12 +58,12 @@ static void _drawPhasValue(GFX_display_t *disp, uint16_t phase, uint8_t pos_y)
DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
}
static void _drawDutyValue(GFX_display_t *disp, uint8_t duty, uint8_t pos_y)
{
uint8_t data[8];
snprintf((char *)data, 8, "%03u%%", duty);
DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
}
// static void _drawDutyValue(GFX_display_t *disp, uint8_t duty, uint8_t pos_y)
// {
// uint8_t data[8];
// snprintf((char *)data, 8, "%03u%%", duty);
// DISP_writeString(disp, &font5x7Info, data, 76, pos_y, BM_NORMAL);
// }
static void _blinkButtons(GFX_display_t *disp, APP_data_t *app_data)
{
@@ -168,7 +172,7 @@ static void _drawPhaseValueHelper(GFX_display_t *disp, uint32_t phase, uint8_t f
DISP_clearRegion(disp, 64, 13, 66, 40);
DISP_writeString(disp, &font5x7Info, (uint8_t *)"P:", 64, 20, BM_NORMAL);
_drawPhasValue(disp, phase, 20);
DISP_drawBitmap(disp, &marker_down, marker_ampl_pos_x[(AMPL_MAX_DIGIT - 1) - focus_digit], 15, BM_NORMAL);
DISP_drawBitmap(disp, &marker_down, marker_phas_pos_x[(AMPL_MAX_DIGIT - 1) - focus_digit], 15, BM_NORMAL);
}
static void _drawFuncGenValues(GFX_display_t *disp, APP_data_t *app_data)
@@ -178,19 +182,19 @@ 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", _calcMarkerPos(990000, 1000000));
_drawMeterHelper(disp, "1", "1M", _calcMarkerPos(fun_gen->frequency, MAX_FREQ));
break;
case LAY_AMPL:
_drawAmplValueHelper(disp, fun_gen->amplitude, app_data->ampl_focus_digit);
_drawMeterHelper(disp, "0V", "5V", _calcMarkerPos(100, 500));
_drawMeterHelper(disp, "0V", "5V", _calcMarkerPos(fun_gen->amplitude, MAX_VOLT_POS));
break;
case LAY_OFFS:
_drawOffsValueHelper(disp, fun_gen->offset, app_data->offs_focus_digit);
_drawMeterHelper(disp, "-5V", "+5V", _calcMarkerPos(100 + 250, 500 + 250));
_drawMeterHelper(disp, "-5V", "+5V", _calcMarkerPos(MAX_VOLT_POS + fun_gen->offset, MAX_VOLT_POS * 2));
break;
case LAY_PHAS:
_drawPhaseValueHelper(disp, fun_gen->phase, app_data->phas_focus_digit);
_drawMeterHelper(disp, "0", "360", _calcMarkerPos(100, 500));
_drawMeterHelper(disp, "0", "360", _calcMarkerPos(fun_gen->phase, MAX_PHAS));
break;
case LAY_MAIN:
DISP_clearRegion(disp, 62, 13, 66, 40);
@@ -213,7 +217,7 @@ 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;
// GEN_pwm_t *pwm_gen = app_data->generator;
}
static void _drawValues(GFX_display_t *disp, APP_data_t *app_data)
@@ -251,14 +255,14 @@ static void _drawOffsetLine(GFX_display_t *disp, int16_t offs, uint32_t ampl)
DISP_drawHorizontalLine(disp, 2, 31 + offs_shift, 57, GFX_WHITE);
}
static void _drawMaxAmpLine(GFX_display_t *disp, int16_t offs, uint32_t ampl)
{
DISP_drawHorizontalLine(disp, 2, 12, 57, GFX_WHITE);
DISP_drawBitmap(disp, &marker_up, 0, 13, BM_NORMAL);
// static void _drawMaxAmpLine(GFX_display_t *disp, int16_t offs, uint32_t ampl)
// {
// DISP_drawHorizontalLine(disp, 2, 12, 57, GFX_WHITE);
// DISP_drawBitmap(disp, &marker_up, 0, 13, BM_NORMAL);
DISP_drawHorizontalLine(disp, 2, 51, 57, GFX_WHITE);
DISP_drawBitmap(disp, &marker_down, 0, 48, BM_NORMAL);
}
// DISP_drawHorizontalLine(disp, 2, 51, 57, GFX_WHITE);
// DISP_drawBitmap(disp, &marker_down, 0, 48, BM_NORMAL);
// }
static void _drawFunGenGraph(GFX_display_t *disp, APP_data_t *app_data)
{