Помогите с оптимизацией кода

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021
// Это мой код для одноразовой анимации при загрузке платы
//Помогите с оптимизацией кода и функцией millis для "blink-a"

================================================================

http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

судя по всему - с отрицательным IQ. Можно сразу указатель доставать

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021
#include <GyverButton.h>
#include <GyverOLED.h>
GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;
const int ledRPin = 16;  //rx2
const int ledGPin = 4 ;  //D1
/////////////////////////////////////////////////////////
const int freq = 10000;
const int ledChannel3 = 2;
const int resolution = 8;
short int start_time = 4000;
/////////////////////////////////////////////////////////
boolean start = true;
long interval = 1000;
int ledState = 0;
int ledStateON = 200;
long previousMillis = 0;
/////////////////////////////////////////////////////////
const uint8_t bitmap_128x46[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x3D, 0x1E, 0xE4, 0xE0, 0xE0, 0x1E, 0x1F, 0x1F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0xB7, 0xB7, 0xB6, 0xBF, 0xBF, 0x9E, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xB0, 0xB0, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3C, 0x1E, 0x07, 0x03, 0x01, 0x01, 0x01, 0x01, 0x19, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x0E, 0x07, 0x01, 0x00, 0x01, 0x07, 0x0E, 0x1C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0x7F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7F, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x3E, 0x76, 0x62, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3C, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0x80, 0xF0, 0xF0, 0x80, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x30, 0x30, 0x70, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x10, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x80, 0x00, 0xC0, 0xF0, 0x00, 0xC0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x30, 0xF0, 0xE0, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x30, 0x30, 0xF0, 0xE0, 0x00, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x00, 0xF0, 0xF0, 0x30, 0xF0, 0xE0, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0xC0, 0xF0, 0xF0, 0x00, 0x10, 0x30, 0xF0, 0xF0, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xC0, 0xFF, 0x3F, 0x33, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xE3, 0x87, 0xCE, 0xF8, 0x00, 0x00, 0xFF, 0xC0, 0xC0, 0xC0, 0x00, 0xFF, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xFF, 0xFF, 0x0C, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xF0, 0xFF, 0x01, 0xE0, 0xFF, 0x33, 0x3F, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0x0C, 0x07, 0x03, 0x00, 0xFF, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0C, 0x0C, 0xFF, 0xE3, 0x00, 0x00, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xFF, 0xFF, 0x0C, 0x06, 0x07, 0x00, 0xFF, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xF0, 0xFF, 0x31, 0x3F, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
void setup() {
  Serial.begin(115200);
  oled.init();
  oled.clear();
  ledcSetup(ledChannel3, freq, resolution);
  ledcAttachPin(ledRPin, ledChannel3);
}

void loop() {

  if (start == true) {

    oled.clear();
    oled.setCursor(25, 6);
    oled.setScale(2);
    oled.print("LOAD...");
    oled.drawBitmap(0, 0, bitmap_128x46, 128, 46);
    oled.update();
    oled.clear( 0, 47, 128, 64);
    while (millis () < start_time) {
      for (byte i = 3; i < 124; i += millis ()) {
        oled.rect(0, 50, 127, 63, OLED_STROKE);
        i = map(millis(), 0, start_time, 0, 124);
        oled.rect(3, 53, i, 60);
        oled.update();
        unsigned long currentMillis = millis();
        if (currentMillis - previousMillis > interval) {
          previousMillis = currentMillis;
          if (ledState == 0)
            ledState = ledStateON;
          else
            ledState = 0;
          ledcWrite(ledChannel3, ledState);
        }
      }
    }
    oled.clear();
    oled.setCursor(37, 2);
    oled.setScale(2);
    oled.print("LOAD ");
    oled.setCursor(13, 4);
    oled.setScale(2);
    oled.print("COMPLETE");
    oled.update();
    start = false;
  }
}

 

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021

ЕвгенийП пишет:

?

мой косяк, не перепроверил

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017
01 #include <GyverButton.h>
02 #include <GyverOLED.h>

Вот к нему и обращайся. 

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021

я использую ESP32 а его библиотеки не все подходят

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021

косяк, согласен, виноват. Исправился

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

и что? компилируется?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А чё надо-то?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

А чё надо-то?

мне ничего )))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А Вы здесь причём?

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021
Помощь в оптимизации. всё работает. но всегда есть куда расти

#include <GyverButton.h>
#include <GyverOLED.h>
GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;      //GND/ VCC 3.3v/ scl - d22/ sda - d21 пины
////////////////////////////////////////////////////////// кнопки
#define btn_fire 5       //d5 + GND
#define btn_dowm 18      //d18 + GND
#define btn_up 19        //d19 + GND
//////////////////////////////////////////////////////////
#define LEDC_TIMER_13_BIT  13
#define LEDC_BASE_FREQ     5000
//////////////////////////////////////////////////////////настройки кнопок
GButton butt_down(btn_dowm, HIGH_PULL, NORM_OPEN);
GButton butt_up(btn_up, HIGH_PULL, NORM_OPEN);
GButton fire(btn_fire, HIGH_PULL, NORM_OPEN);
/////////////////////////////////////////////////////////пин к 510 коннектору
#define mosfetPin 17  // tx2
/////////////////////////////////////////////////////////к светодиодам
#define LED_PIN_R   16  //rx2
#define LED_PIN_G   4   //D1
#define LED_PIN_B   2   //D2
///////////////////////////////////////////////////////// настройка свойств ШИМ
const int freq = 10000;
const int resolution = 8;
const int LEDC_CHANNEL_0_R = 0;
const int LEDC_CHANNEL_1_G = 1;
const int LEDC_CHANNEL_2_B = 2;
const int LEDC_CHANNEL_3_MOSFET = 3;
///////////////////////////////////////////////////////// Arduino like analogWrite
void ledcAnalogWrite(uint8_t channel, uint32_t value, uint32_t valueMax = 255) {
  // calculate duty
  uint32_t duty = (LEDC_BASE_FREQ / valueMax) * min(value, valueMax);
  // write duty to LEDC
  ledcWrite(channel, duty);
}
/////////////////////////////////////////////////////////
unsigned char mosfet_power;
unsigned char power = 100;
unsigned char pos1;
unsigned char x_pos;
unsigned char max_light = 50;
////////////////////////////////////////////////////////



/////////////////////////////////////////////////////////
short int start_time = 5000;
boolean start = true;
long interval = 200;
int ledState = 0;
int ledStateON = 100;
long previousMillis = 0;
/////////////////////////////////////////////////////////
const uint8_t bitmap_128x46[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0x3D, 0x1E, 0xE4, 0xE0, 0xE0, 0x1E, 0x1F, 0x1F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0xB7, 0xB7, 0xB6, 0xBF, 0xBF, 0x9E, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xB0, 0xB0, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3C, 0x1E, 0x07, 0x03, 0x01, 0x01, 0x01, 0x01, 0x19, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x0E, 0x07, 0x01, 0x00, 0x01, 0x07, 0x0E, 0x1C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0x7F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x7F, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x3E, 0x76, 0x62, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3C, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0x80, 0xF0, 0xF0, 0x80, 0x00, 0x30, 0xF0, 0xF0, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x30, 0x30, 0x70, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x10, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x80, 0x00, 0xC0, 0xF0, 0x00, 0xC0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x30, 0xF0, 0xE0, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x30, 0x30, 0xF0, 0xE0, 0x00, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x00, 0xF0, 0xF0, 0x30, 0xF0, 0xE0, 0x00, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x00, 0xC0, 0xF0, 0xF0, 0x00, 0x10, 0x30, 0xF0, 0xF0, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xC0, 0xFF, 0x3F, 0x33, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xE3, 0x87, 0xCE, 0xF8, 0x00, 0x00, 0xFF, 0xC0, 0xC0, 0xC0, 0x00, 0xFF, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xFF, 0xFF, 0x0C, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xF0, 0xFF, 0x01, 0xE0, 0xFF, 0x33, 0x3F, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0x0C, 0x07, 0x03, 0x00, 0xFF, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0C, 0x0C, 0xFF, 0xE3, 0x00, 0x00, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xFF, 0xFF, 0x0C, 0x06, 0x07, 0x00, 0xFF, 0xFF, 0xC6, 0xC6, 0xC0, 0x00, 0xF0, 0xFF, 0x31, 0x3F, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/////////////////////////////////////////////////////////

void setup() {
  Serial.begin(115200);
  oled.init();
  oled.clear();
  ledcSetup(LEDC_CHANNEL_0_R, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
  ledcAttachPin(LED_PIN_R, LEDC_CHANNEL_0_R);
  ledcSetup(LEDC_CHANNEL_1_G, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
  ledcAttachPin(LED_PIN_G, LEDC_CHANNEL_1_G);
  ledcSetup(LEDC_CHANNEL_2_B, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
  ledcAttachPin(LED_PIN_B, LEDC_CHANNEL_2_B);
  ledcSetup(LEDC_CHANNEL_3_MOSFET, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
  ledcAttachPin(mosfetPin, LEDC_CHANNEL_3_MOSFET);
  butt_down.setTickMode(AUTO);
  butt_up.setTickMode(AUTO);
  fire.setTickMode(AUTO);
  fire.setTimeout(25);
}

void loop() {
  if (start == true) {
    oled.clear();
    oled.setCursor(25, 6);
    oled.setScale(2);
    oled.print("LOAD...");
    oled.drawBitmap(0, 0, bitmap_128x46, 128, 46);
    oled.update();
    oled.clear( 0, 47, 128, 64);
    while (millis () < start_time) {
      for (byte i = 3; i < 124; i += millis ()) {
        oled.rect(0, 50, 127, 63, OLED_STROKE);
        i = map(millis(), 0, start_time, 0, 124);
        oled.rect(3, 53, i, 60);
        oled.update();
      }
    }
    oled.clear();
    oled.setCursor(37, 2);
    oled.setScale(2);
    oled.print("LOAD ");
    oled.setCursor(13, 4);
    oled.setScale(2);
    oled.print("COMPLETE");
    oled.update();
    start = false;
    ledcAnalogWrite(LEDC_CHANNEL_0_R, 255);
    delay(350);
    ledcAnalogWrite(LEDC_CHANNEL_0_R, 0);
    delay(350);
    ledcAnalogWrite(LEDC_CHANNEL_1_G, 255);
    delay(350);
    ledcAnalogWrite(LEDC_CHANNEL_1_G, 0);
    delay(350);
    ledcAnalogWrite(LEDC_CHANNEL_2_B, 255);
    delay(350);
    ledcAnalogWrite(LEDC_CHANNEL_2_B, 0);
    delay(350);
  }
  ///////////////////////////////////////////////////////// опрос кнопок + -, меняем мощность
  if (butt_down.isPress()) {
    power = power - 1;
  }
  if (butt_up.isPress()) {
    power = power + 1;
  }
  if (butt_down.isHold()) {
    power = power - 1;
  }
  if (butt_up.isHold()) {
    power = power + 1;
  }
  if (butt_up.isRelease()) {
  }
  fire_on ();
  if (power <= 10) x_pos = 58;
  if (power >= 10) x_pos = 46;
  if (power == 100) x_pos = 37;
  pos1 = map(power, 1, 100, 3, 124);
  oled.clear();
  oled.setCursor(35, 0);
  oled.setScale(2);
  oled.print("POWER");
  oled.setCursor(x_pos, 3);
  oled.setScale(3);
  oled.print(power);
  oled.rect(0, 50, 127, 63, OLED_STROKE);
  oled.rect(3, 53, pos1, 60);
  oled.update();
  if (power > 100) {
    power = 100;
    oled.clear();
    oled.setCursor(15, 0);
    oled.setScale(2);
    oled.print("!ХВАТИТ!");
    oled.setCursor(10, 3);
    oled.setScale(2);
    oled.print("MAX POWER");
    oled.update();
    delay (3000);
  }
  if (power < 1) {
    power = 1;
    ledcWrite(LEDC_CHANNEL_1_G, 0);
    oled.clear();
    oled.setCursor(15, 0);
    oled.setScale(2);
    oled.print("!ХВАТИТ!");
    oled.setCursor(10, 3);
    oled.setScale(2);
    oled.print("MIN POWER");
    oled.update();
    delay (3000);
  }
}

void fire_on () {
  if (butt_up.state() == false && butt_down.state() == false) {
    if (fire.isHold()) {
      mosfet_power = map(power, 1, 100, 4, 255);
      ledcAnalogWrite(LEDC_CHANNEL_3_MOSFET, mosfet_power);
    } else {
      ledcAnalogWrite(LEDC_CHANNEL_3_MOSFET, 0);
    }
  }
}

 

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

ЕвгенийП пишет:

А чё надо-то?

Надо по дефолту включить галку "сворачивать код по умолчанию" 

b707
Offline
Зарегистрирован: 26.05.2017

ничего не понятно - сначала один код выложили, теперь другой...

Какой из них надо оптимизировать? И зачем?

sadman41
Offline
Зарегистрирован: 19.10.2016

Как зачем? Чтобы все в пять строк влезло.

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021

вопрос не в том чтобы уместить все в 1ну строку, а в том чтобы все работало лучше точнее проще, я знаю что можно millis убрать, с этим у меня беда, хотя с 1м справился, да и там где он есть это не критично.

если ко подскажет как поднять (ПРАВИЛЬНО) частоту на выход мосфета буду благодарен

 

b707
Offline
Зарегистрирован: 26.05.2017

А зачем миллис убирать?

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021

как я и сказал там где он есть это не критично.

но вдруг есть  возражение на этот счет

больше сейчас интересует PWM конфигурация, ибо сижу читаю даташиты пробую, а нифига кроме стока нормально не работает. пробую менять канал, частоту и тд.

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021

может кто знает библиотеку для упрощения этого дела? 

плата ESP32 WROOM DevKit v1

b707
Offline
Зарегистрирован: 26.05.2017

Вы на вопросы отвечать можете?
Зачем миллис убирать? Вы ничего не путаете?

BigBlackOwl
Offline
Зарегистрирован: 01.11.2021

На сколько мне известно, и это не без основания, при МИЛЛИС код тормозит, а точнее тупо останавливается.

Но я уже 10 раз сказал что на мой код это не влияет, старался писать без него и получилось.

Я самоучка и не имею степеней. Практики маловато. Код писал сам, он не скопирован под чистую. Возможно что-то можно сделать иначе, всех слушаю.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ничёнепойму, это где зарыто?
 

  ledcSetup(LEDC_CHANNEL_0_R, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
  ledcAttachPin(LED_PIN_R, LEDC_CHANNEL_0_R);

 

Morroc
Offline
Зарегистрирован: 24.10.2016

BigBlackOwl пишет:

На сколько мне известно, и это не без основания, при МИЛЛИС код тормозит, а точнее тупо останавливается.


Ерунда какая то. Вы о чем ?

b707
Offline
Зарегистрирован: 26.05.2017

Morroc пишет:
BigBlackOwl пишет:

На сколько мне известно, и это не без основания, при МИЛЛИС код тормозит, а точнее тупо останавливается.

Ерунда какая то. Вы о чем ?

судя по стилю - очередной непризнанный гений. Выдумал свой оригинальный способ "стоя в гамаке" и пришел сюда похвастать. Или просто тролль

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ЕвгенийП пишет:

А чё надо-то?

BigBlackOwl пишет:

Помощь в оптимизации. всё работает. но всегда есть куда расти

Вы не поняли вопрос. Оптимизация не бывает сама по себе (хотя бы потому, что оптимизируя одно, ухудшаешь другое). Какова цель оптимизации? Что нужно оптимизировать? Какого уровня достичь?

5N62V
Offline
Зарегистрирован: 25.02.2016

Бывает часто напишет чел код, тот вдруг заработает, и.... что, куда бежать? с кем радостью поделиться? Вот и появляются темы типа этой. Скрытое "вау как я умею" под вежливым "помогите мне в хз в чем". ТС в этом не первый и не последний, и дажу сможет пользу вынести , если сумеет правильно вопросы сформулировать.

b707
Offline
Зарегистрирован: 26.05.2017

5N62V - отлично формулируете :)

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

5N62V пишет:

Бывает часто напишет чел код, тот вдруг заработает, и.... что, куда бежать? с кем радостью поделиться? Вот и появляются темы типа этой. Скрытое "вау как я умею" под вежливым "помогите мне в хз в чем". ТС в этом не первый и не последний, и дажу сможет пользу вынести , если сумеет правильно вопросы сформулировать.

Эт-точно! Правильно заходить с темой "смотрите, чмошники, как я умею". Куча методических рекомендаций обеспечена 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Rumata пишет:

Эт-точно! Правильно заходить с темой "смотрите, чмошники, как я умею". Куча методических рекомендаций обеспечена 

Таки да, истину глаголешь! :)))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Rumata пишет:

Эт-точно! Правильно заходить с темой "смотрите, чмошники, как я умею". Куча методических рекомендаций обеспечена 

Таки да, истину глаголешь! :)))

и чего я тут тогда пять лет сижу пытаясь вразумиться? )))