This commit is contained in:
2023-10-17 18:56:20 +02:00
parent dcea417111
commit 2431405cfd
6 changed files with 160 additions and 15 deletions

View File

@@ -13,6 +13,7 @@
#define MAX_VOLT 330
#define MAX_REF 256
#define MAX_PWM_VOLT 150
typedef enum
{
@@ -23,7 +24,8 @@ typedef enum
POT,
REF,
OFFS,
ZERO,
// ZERO,
PWM,
OPT_MAX
} option_t;
@@ -62,6 +64,7 @@ void setup(void)
var[POT] = 255;
var[REF] = 197;
var[ONOFF] = 1;
var[REF] = 511;
hst7565.hspi = &hspi3;
hst7565.cs_port = ST7565_CS_GPIO_Port;
@@ -131,6 +134,8 @@ void draw_string(void)
DISP_writeString(&disp, &font5x7Info, (uint8_t *)"OFFS:", 8, 48, BM_NORMAL);
// dac2 - zeroing
DISP_writeString(&disp, &font5x7Info, (uint8_t *)"ZERO:", 8, 56, BM_NORMAL);
// pwm
DISP_writeString(&disp, &font5x7Info, (uint8_t *)"PWM:", 72, 0, BM_NORMAL);
for (option_t opt = FREQ; opt < OPT_MAX; opt++)
{
@@ -186,8 +191,15 @@ void update_display(void)
DISP_writeString(&disp, &font5x7Info, data, 48, 48, BM_NORMAL);
DISP_writeString(&disp, &font5x7Info, (uint8_t *)"*", 0, 48, BM_NORMAL);
break;
case ZERO:
temp = (MAX_REF * var[REF] + 127) / UINT8_MAX;
// case ZERO:
// temp = (MAX_REF * var[REF] + 127) / UINT8_MAX;
// snprintf((char *)data, 16, "%03u (%01d.%02d)", var[REF], temp / 100, temp % 100);
// // snprintf((char *)data, 8, "%03u", var[ZERO]);
// DISP_writeString(&disp, &font5x7Info, data, 48, 56, BM_NORMAL);
// DISP_writeString(&disp, &font5x7Info, (uint8_t *)"*", 0, 56, BM_NORMAL);
// break;
case PWM:
temp = (MAX_PWM_VOLT * var[REF] + 512) / 1024;
snprintf((char *)data, 16, "%03u (%01d.%02d)", var[REF], temp / 100, temp % 100);
// snprintf((char *)data, 8, "%03u", var[ZERO]);
DISP_writeString(&disp, &font5x7Info, data, 48, 56, BM_NORMAL);
@@ -324,10 +336,16 @@ void changeValue(int8_t inc)
ad5303_set_value(&hdac, var[OFFS], AD_DAC2);
break;
}
case ZERO:
// case ZERO:
// {
// var[ZERO] = (var[ZERO] + inc) & UINT8_MAX;
// ad5303_set_value(&hdac, var[ZERO], AD_DAC1);
// break;
// }
case PWM:
{
var[ZERO] = (var[ZERO] + inc) & UINT8_MAX;
ad5303_set_value(&hdac, var[ZERO], AD_DAC1);
var[PWM] = (var[PWM] + inc) & 0x03FF; // 0x03FF - 1023
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_1, var[PWM]);
break;
}
default: