Fixed height / width values. Improved usage of height and width of the display. Fixed +/- info block position. The DELAY is now used.
This commit is contained in:
parent
3b6aa4e902
commit
a76905bd62
3 changed files with 46 additions and 28 deletions
|
@ -12,13 +12,13 @@
|
||||||
#include "esp_adc_cal.h"
|
#include "esp_adc_cal.h"
|
||||||
#include "filters.h"
|
#include "filters.h"
|
||||||
|
|
||||||
#define DEBUG_SERIAL
|
//#define DEBUG_SERIAL
|
||||||
#define DEBUG_BUFF
|
#define DEBUG_BUFF
|
||||||
#define DELAY 250
|
#define DEBUG_DELAY 250
|
||||||
|
|
||||||
// Width and height of sprite
|
// Width and height of sprite
|
||||||
#define WIDTH 240
|
#define DISPLAY_HEIGHT 240
|
||||||
#define HEIGHT 320
|
#define DISPLAY_WIDTH 320
|
||||||
|
|
||||||
#define ADC_CHANNEL ADC1_CHANNEL_5 // GPIO33
|
#define ADC_CHANNEL ADC1_CHANNEL_5 // GPIO33
|
||||||
#define NUM_SAMPLES 1000 // number of samples
|
#define NUM_SAMPLES 1000 // number of samples
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
void debug_buffer() {
|
void debug_buffer() {
|
||||||
ADC_Sampling();
|
ADC_Sampling();
|
||||||
i2s_adc_disable(I2S_NUM_0);
|
i2s_adc_disable(I2S_NUM_0);
|
||||||
delay(1000);
|
delay(DEBUG_DELAY);
|
||||||
for (uint32_t i = 0; i < B_MULT * NUM_SAMPLES; i++) {
|
for (uint32_t i = 0; i < B_MULT * NUM_SAMPLES; i++) {
|
||||||
for (int j = 0; j < 1; j++) {
|
for (int j = 0; j < 1; j++) {
|
||||||
Serial.println(i2s_buff[i]);
|
Serial.println(i2s_buff[i]);
|
||||||
|
|
|
@ -7,15 +7,16 @@ void setup_screen() {
|
||||||
spr.setColorDepth(8);
|
spr.setColorDepth(8);
|
||||||
|
|
||||||
// Create a sprite of defined size
|
// Create a sprite of defined size
|
||||||
spr.createSprite(HEIGHT, WIDTH);
|
spr.createSprite(DISPLAY_WIDTH, DISPLAY_HEIGHT);
|
||||||
// Clear the TFT screen to blue
|
// Clear the TFT screen to blue
|
||||||
tft.fillScreen(TFT_BLACK);
|
tft.fillScreen(TFT_BLACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
int data[HEIGHT] = {0};
|
int data[DISPLAY_WIDTH] = {0};
|
||||||
|
|
||||||
|
/*
|
||||||
float to_scale(float reading) {
|
float to_scale(float reading) {
|
||||||
float temp = WIDTH -
|
float temp = DISPLAY_HEIGHT -
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
|
@ -26,18 +27,33 @@ float to_scale(float reading) {
|
||||||
(v_div * 6)
|
(v_div * 6)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
* (WIDTH - 1)
|
* (DISPLAY_HEIGHT - 1)
|
||||||
- 1;
|
- 1;
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
float to_scale(float reading) {
|
||||||
|
float temp = DISPLAY_HEIGHT - (((reading / 4095.0) + (offset / 3.3)) * 3300 / (v_div * 6)) * (DISPLAY_HEIGHT - 1) - 1;
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
float to_voltage(float reading) {
|
float to_voltage(float reading) {
|
||||||
return (reading - 20480.0) / 4095.0 * 3.3;
|
return (reading - 20480.0) / 4095.0 * 3.3;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
float to_voltage(float reading) {
|
||||||
|
return reading / 4095.0 * 3.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
uint32_t from_voltage(float voltage) {
|
uint32_t from_voltage(float voltage) {
|
||||||
return uint32_t(voltage / 3.3 * 4095 + 20480.0);
|
return uint32_t(voltage / 3.3 * 4095 + 20480.0);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
uint32_t from_voltage(float voltage) {
|
||||||
|
return ((uint32_t)(voltage / 3.3 * 4095));
|
||||||
|
}
|
||||||
|
|
||||||
void update_screen(uint16_t *i2s_buff, float sample_rate) {
|
void update_screen(uint16_t *i2s_buff, float sample_rate) {
|
||||||
|
|
||||||
|
@ -149,11 +165,11 @@ void draw_sprite(float freq,
|
||||||
draw_channel1(trigger, 0, i2s_buff, sample_rate);
|
draw_channel1(trigger, 0, i2s_buff, sample_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
int shift = HEIGHT - 110;
|
int shift = DISPLAY_WIDTH - 110;
|
||||||
if (menu) {
|
if (menu) {
|
||||||
spr.drawLine( 0, WIDTH/2, HEIGHT, WIDTH/2, TFT_WHITE); //center line
|
spr.drawLine( 0, DISPLAY_HEIGHT/2, DISPLAY_WIDTH, DISPLAY_HEIGHT/2, TFT_WHITE); //center line
|
||||||
spr.fillRect(shift, 0, (WIDTH/2)-18, (WIDTH/2)+15, TFT_BLACK);
|
spr.fillRect(shift, 0, (DISPLAY_HEIGHT/2)-18, (DISPLAY_HEIGHT/2)+15, TFT_BLACK);
|
||||||
spr.drawRect(shift, 0, (WIDTH/2)-18, (WIDTH/2)+15, TFT_WHITE);
|
spr.drawRect(shift, 0, (DISPLAY_HEIGHT/2)-18, (DISPLAY_HEIGHT/2)+15, TFT_WHITE);
|
||||||
spr.fillRect(shift + 1, 3 + 10 * (opt - 1), 100, 11, TFT_RED);
|
spr.fillRect(shift + 1, 3 + 10 * (opt - 1), 100, 11, TFT_RED);
|
||||||
|
|
||||||
spr.drawString("AUTOSCALE", shift + 5, 5);
|
spr.drawString("AUTOSCALE", shift + 5, 5);
|
||||||
|
@ -183,27 +199,29 @@ void draw_sprite(float freq,
|
||||||
spr.drawString(offset_line, shift + 25, 59);
|
spr.drawString(offset_line, shift + 25, 59);
|
||||||
|
|
||||||
if (set_value) {
|
if (set_value) {
|
||||||
spr.fillRect(229, 0, 11, 11, TFT_BLUE);
|
uint16_t t_left = shift+161;
|
||||||
spr.drawRect(229, 0, 11, 11, TFT_WHITE);
|
// Plus symbols while setting a value
|
||||||
spr.drawLine(231, 5, 238 , 5, TFT_WHITE);
|
spr.fillRect(t_left, 0, 11, 11, TFT_BLUE);
|
||||||
spr.drawLine(234, 2, 234, 8, TFT_WHITE);
|
spr.drawRect(t_left, 0, 11, 11, TFT_WHITE);
|
||||||
|
spr.drawLine(t_left+2, 5, t_left+9, 5, TFT_WHITE);
|
||||||
|
spr.drawLine(t_left+5, 2, t_left+5, 8, TFT_WHITE);
|
||||||
|
|
||||||
|
// Minus symbols while setting a value
|
||||||
spr.fillRect(229, 124, 11, 11, TFT_BLUE);
|
spr.fillRect(t_left, 124, 11, 11, TFT_BLUE);
|
||||||
spr.drawRect(229, 124, 11, 11, TFT_WHITE);
|
spr.drawRect(t_left, 124, 11, 11, TFT_WHITE);
|
||||||
spr.drawLine(231, 129, 238, 129, TFT_WHITE);
|
spr.drawLine(t_left+2, 129, t_left+9, 129, TFT_WHITE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (info) {
|
else if (info) {
|
||||||
spr.drawLine( 0, 120, HEIGHT, 120, TFT_WHITE); //center line
|
spr.drawLine( 0, 120, DISPLAY_WIDTH, 120, TFT_WHITE); //center line
|
||||||
//spr.drawRect(shift + 10, 0, HEIGHT - shift - 20, 30, TFT_WHITE);
|
//spr.drawRect(shift + 10, 0, DISPLAY_WIDTH - shift - 20, 30, TFT_WHITE);
|
||||||
spr.drawString("P-P: " + String(max_v - min_v) + "V", shift + 15, 5);
|
spr.drawString("P-P: " + String(max_v - min_v) + "V", shift + 15, 5);
|
||||||
spr.drawString(frequency, shift + 15, 15);
|
spr.drawString(frequency, shift + 15, 15);
|
||||||
spr.drawString(String(int(v_div)) + "mV/div", shift - 100, 5);
|
spr.drawString(String(int(v_div)) + "mV/div", shift - 100, 5);
|
||||||
spr.drawString(String(int(s_div)) + "uS/div", shift - 100, 15);
|
spr.drawString(String(int(s_div)) + "uS/div", shift - 100, 15);
|
||||||
//String offset_line = String((2.0 * v_div) / 1000.0 - offset) + "V";
|
//String offset_line = String((2.0 * v_div) / 1000.0 - offset) + "V";
|
||||||
String offset_line = String((3.0 * v_div) / 1000.0 - offset) + "V";
|
String offset_line = String((3.0 * v_div) / 1000.0 - offset) + "V";
|
||||||
spr.drawString(offset_line, shift + 75, 112);
|
spr.drawString(offset_line, shift + 75, (DISPLAY_HEIGHT/2) -8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -215,15 +233,15 @@ void draw_sprite(float freq,
|
||||||
|
|
||||||
void draw_grid() {
|
void draw_grid() {
|
||||||
|
|
||||||
for (int i = 0; i < (HEIGHT/10); i++) {
|
for (int i = 0; i < (DISPLAY_WIDTH/10); i++) {
|
||||||
spr.drawPixel(i * 10, 40, TFT_WHITE);
|
spr.drawPixel(i * 10, 40, TFT_WHITE);
|
||||||
spr.drawPixel(i * 10, 80, TFT_WHITE);
|
spr.drawPixel(i * 10, 80, TFT_WHITE);
|
||||||
spr.drawPixel(i * 10, 120, TFT_WHITE);
|
spr.drawPixel(i * 10, 120, TFT_WHITE);
|
||||||
spr.drawPixel(i * 10, 160, TFT_WHITE);
|
spr.drawPixel(i * 10, 160, TFT_WHITE);
|
||||||
spr.drawPixel(i * 10, 200, TFT_WHITE);
|
spr.drawPixel(i * 10, 200, TFT_WHITE);
|
||||||
}
|
}
|
||||||
for (int i = 0; i < WIDTH; i += 10) {
|
for (int i = 0; i < DISPLAY_HEIGHT; i += 10) {
|
||||||
for (int j = 0; j < HEIGHT; j += 40) {
|
for (int j = 0; j < DISPLAY_WIDTH; j += 40) {
|
||||||
spr.drawPixel(j, i, TFT_WHITE);
|
spr.drawPixel(j, i, TFT_WHITE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -245,7 +263,7 @@ void draw_channel1(uint32_t trigger0, uint32_t trigger1, uint16_t *i2s_buff, flo
|
||||||
trigger0 += index_offset;
|
trigger0 += index_offset;
|
||||||
uint32_t old_index = trigger0;
|
uint32_t old_index = trigger0;
|
||||||
float n_data = 0, o_data = to_scale(i2s_buff[trigger0]);
|
float n_data = 0, o_data = to_scale(i2s_buff[trigger0]);
|
||||||
for (uint32_t i = 1; i < HEIGHT; i++) {
|
for (uint32_t i = 1; i < DISPLAY_WIDTH; i++) {
|
||||||
uint32_t index = trigger0 + (uint32_t)((i + 1) * data_per_pixel);
|
uint32_t index = trigger0 + (uint32_t)((i + 1) * data_per_pixel);
|
||||||
if (index < BUFF_SIZE) {
|
if (index < BUFF_SIZE) {
|
||||||
if (full_pix && s_div > 40 && current_filter == 0) {
|
if (full_pix && s_div > 40 && current_filter == 0) {
|
||||||
|
|
Loading…
Reference in a new issue