Помогите с оптимизацией кода
- Войдите на сайт для отправки комментариев
Пнд, 01/11/2021 - 09:16
// Это мой код для одноразовой анимации при загрузке платы //Помогите с оптимизацией кода и функцией millis для "blink-a" ================================================================
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
?
судя по всему - с отрицательным IQ. Можно сразу указатель доставать
#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; } }?
мой косяк, не перепроверил
01#include <GyverButton.h>02#include <GyverOLED.h>Вот к нему и обращайся.
я использую ESP32 а его библиотеки не все подходят
косяк, согласен, виноват. Исправился
и что? компилируется?
А чё надо-то?
А чё надо-то?
мне ничего )))
А Вы здесь причём?
Помощь в оптимизации. всё работает. но всегда есть куда расти #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); } } }А чё надо-то?
Надо по дефолту включить галку "сворачивать код по умолчанию"
ничего не понятно - сначала один код выложили, теперь другой...
Какой из них надо оптимизировать? И зачем?
Как зачем? Чтобы все в пять строк влезло.
вопрос не в том чтобы уместить все в 1ну строку, а в том чтобы все работало лучше точнее проще, я знаю что можно millis убрать, с этим у меня беда, хотя с 1м справился, да и там где он есть это не критично.
если ко подскажет как поднять (ПРАВИЛЬНО) частоту на выход мосфета буду благодарен
А зачем миллис убирать?
как я и сказал там где он есть это не критично.
но вдруг есть возражение на этот счет
больше сейчас интересует PWM конфигурация, ибо сижу читаю даташиты пробую, а нифига кроме стока нормально не работает. пробую менять канал, частоту и тд.
может кто знает библиотеку для упрощения этого дела?
плата ESP32 WROOM DevKit v1
Вы на вопросы отвечать можете?
Зачем миллис убирать? Вы ничего не путаете?
На сколько мне известно, и это не без основания, при МИЛЛИС код тормозит, а точнее тупо останавливается.
Но я уже 10 раз сказал что на мой код это не влияет, старался писать без него и получилось.
Я самоучка и не имею степеней. Практики маловато. Код писал сам, он не скопирован под чистую. Возможно что-то можно сделать иначе, всех слушаю.
ничёнепойму, это где зарыто?
На сколько мне известно, и это не без основания, при МИЛЛИС код тормозит, а точнее тупо останавливается.
Ерунда какая то. Вы о чем ?
На сколько мне известно, и это не без основания, при МИЛЛИС код тормозит, а точнее тупо останавливается.
судя по стилю - очередной непризнанный гений. Выдумал свой оригинальный способ "стоя в гамаке" и пришел сюда похвастать. Или просто тролль
А чё надо-то?
Помощь в оптимизации. всё работает. но всегда есть куда расти
Вы не поняли вопрос. Оптимизация не бывает сама по себе (хотя бы потому, что оптимизируя одно, ухудшаешь другое). Какова цель оптимизации? Что нужно оптимизировать? Какого уровня достичь?
Бывает часто напишет чел код, тот вдруг заработает, и.... что, куда бежать? с кем радостью поделиться? Вот и появляются темы типа этой. Скрытое "вау как я умею" под вежливым "помогите мне в хз в чем". ТС в этом не первый и не последний, и дажу сможет пользу вынести , если сумеет правильно вопросы сформулировать.
5N62V - отлично формулируете :)
Бывает часто напишет чел код, тот вдруг заработает, и.... что, куда бежать? с кем радостью поделиться? Вот и появляются темы типа этой. Скрытое "вау как я умею" под вежливым "помогите мне в хз в чем". ТС в этом не первый и не последний, и дажу сможет пользу вынести , если сумеет правильно вопросы сформулировать.
Эт-точно! Правильно заходить с темой "смотрите, чмошники, как я умею". Куча методических рекомендаций обеспечена
Эт-точно! Правильно заходить с темой "смотрите, чмошники, как я умею". Куча методических рекомендаций обеспечена
Таки да, истину глаголешь! :)))
Эт-точно! Правильно заходить с темой "смотрите, чмошники, как я умею". Куча методических рекомендаций обеспечена
Таки да, истину глаголешь! :)))
и чего я тут тогда пять лет сижу пытаясь вразумиться? )))