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

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od jankop » 17 bře 2020, 19:18

Ahoj, asi bych zkusil klíče preprocesor, direktivy překladače, podmíněný překlad, direktivy #if, #ifdef, #ifndef, #else, #elif a #endif

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

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

Příspěvek od pavel1tu » 17 bře 2020, 19:21

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/
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Elkez
Příspěvky: 51
Registrován: 03 úno 2021, 07:14
Reputation: 0

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

Příspěvek od Elkez » 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í.

Elkez
Příspěvky: 51
Registrován: 03 úno 2021, 07:14
Reputation: 0

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

Příspěvek od Elkez » 17 bře 2021, 13:54

Případně by se též hodilo přejmenování.
dik
e

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od jankop » 17 bře 2021, 14:36

Přesouvat záložky nelze, ale přejmenování je ve stejné nabídce jako Nová záložka.

Axamith
Příspěvky: 530
Registrován: 09 srp 2017, 08:17
Reputation: 0
Kontaktovat uživatele:

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

Příspěvek od Axamith » 17 bře 2021, 16:50

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

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od jankop » 17 bře 2021, 18:47

Myslím, že první je vždy setup()+loop() záložka a pak se to rovná podle abecedy.

Elkez
Příspěvky: 51
Registrován: 03 úno 2021, 07:14
Reputation: 0

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

Příspěvek od Elkez » 17 bře 2021, 19:09

Ano, je to tak, podle abecedy, ale to se seřadí až po znovuspuštění IDE.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

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

Příspěvek od jankop » 17 bře 2021, 19:55

Ne, řadí se to okamžitě.

Elkez
Příspěvky: 51
Registrován: 03 úno 2021, 07:14
Reputation: 0

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

Příspěvek od Elkez » 18 bře 2021, 16:25

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.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů