Stránka 2 z 2

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2020, 19:18
od jankop
Ahoj, asi bych zkusil klíče preprocesor, direktivy překladače, podmíněný překlad, direktivy #if, #ifdef, #ifndef, #else, #elif a #endif

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2020, 19:21
od pavel1tu
V ArduinoIDE lze ovlivnit kdy které části programu zkompilovat (použít) a to pomocí #if #else #endif
Příklad:
výběr mezi různými typy čidel v meteostanici
část kodu s deklarací knihoven

Kód: Vybrat vše

#if (BME == 1)
   #include <Adafruit_Sensor.h>     // Adafruit Unified Sensor 1.1.1 https://github.com/adafruit/Adafruit_Sensor
   #include <Adafruit_BME280.h>     // Adafruit BME280 Library 2.0.1 https://github.com/adafruit/Adafruit_BME280_Library
#endif
#if (HDC == 1)
   #include <HDC2080.h>             // Lime Labs HDC2080 1.0.1 https://github.com/lime-labs/HDC2080-Arduino
#endif
část deklarace čidel a kodu v SETUP

Kód: Vybrat vše

#if (BME == 1)
   Adafruit_BME280 bme280;                       
#endif
#if (HDC == 1)
   HDC2080 sensorHDC(ADDR_HDC2080);
#endif

Kód: Vybrat vše

// Připojení k BME280
#if (BME == 1)
  if (!bme280.begin(BME280_ADRESA)) {
     Serial.println("Senzor BME280 nenalezen overit pripojeni !");
     while (1) {}
     } 
     Serial.println("BME280 OK");
#endif

// Připojení k HDC2080 + nastaveni
#if (HDC == 1)
   sensorHDC.begin();
   sensorHDC.reset();// Begin with a device reset
   // Configure Measurements
   sensorHDC.setMeasurementMode(TEMP_AND_HUMID);  // Set measurements to temperature and humidity
   sensorHDC.setRate(ONE_MINS);                     // Set measurement every minute
   sensorHDC.setTempRes(FOURTEEN_BIT);
   sensorHDC.setHumidRes(FOURTEEN_BIT);
   //begin measuring
   sensorHDC.triggerMeasurement(); 
   Serial.println("HDC2080 OK");
#endif
kod s použitím modulů

Kód: Vybrat vše

//---------------------------------------------------------------------------------  
//                    T - TEPLOTA z BME/HDC
//--------------------------------------------------------------------------------- 
  void VyctiTeplotu(){
     
#if (BME == 1 && HDC == 1)     
     T = (sensorHDC.readTemp() + bme280.readTemperature()) / 2;                         
#endif
#if (BME == 1 && HDC == 0)     
     T = bme280.readTemperature();                         
#endif
#if (BME == 0 && HDC == 1)     
     T =  sensorHDC.readTemp();                         
#endif
     if(ladeni == 1) {                                       
        Serial.print("Teplota : ");
        Serial.print(T);
        Serial.println(" stupnu Celsia");
     }
  }   
více třeba zde
https://www.deviceplus.com/arduino/ardu ... -tutorial/

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2021, 13:50
od Elkez
Také používám záložky, ale mám dotaz: lze záložky libovolně seřazovat v horní liště?
Řadí se mi podle toho, jak je vytvářím, ale hodilo by se vzít ji za ucho a přesunout pořadí.

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2021, 13:54
od Elkez
Případně by se též hodilo přejmenování.
dik
e

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2021, 14:36
od jankop
Přesouvat záložky nelze, ale přejmenování je ve stejné nabídce jako Nová záložka.

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2021, 16:50
od Axamith
Elkez píše:
17 bře 2021, 13:50
Také používám záložky, ale mám dotaz: lze záložky libovolně seřazovat v horní liště?
Řadí se mi podle toho, jak je vytvářím, ale hodilo by se vzít ji za ucho a přesunout pořadí.
Opravdu se ti řadí podle pořadí vytváření? Mě podle abecedy, v IDE ver. 1.8.12

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2021, 18:47
od jankop
Myslím, že první je vždy setup()+loop() záložka a pak se to rovná podle abecedy.

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2021, 19:09
od Elkez
Ano, je to tak, podle abecedy, ale to se seřadí až po znovuspuštění IDE.

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 17 bře 2021, 19:55
od jankop
Ne, řadí se to okamžitě.

Re: Arduino - zpřehlednění rozsáhleho kódu

Napsal: 18 bře 2021, 16:25
od Elkez
Ne, řadí se to až po restartu.
Pokud chci řadit dle svého, řeším to tak, že přidávám před název číselný prefix.