add pwm
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user