Arduino - zpřehlednění rozsáhleho kódu
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Arduino - zpřehlednění rozsáhleho kódu
Ahoj, asi bych zkusil klíče preprocesor, direktivy překladače, podmíněný překlad, direktivy #if, #ifdef, #ifndef, #else, #elif a #endif
- 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
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
část deklarace čidel a kodu v SETUP
kod s použitím modulů
více třeba zde
https://www.deviceplus.com/arduino/ardu ... -tutorial/
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
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
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");
}
}
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"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Arduino - zpřehlednění rozsáhleho kódu
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í.
Ř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
Případně by se též hodilo přejmenování.
dik
e
dik
e
-
- Příspěvky: 1030
- 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řesouvat záložky nelze, ale přejmenování je ve stejné nabídce jako Nová záložka.
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Arduino - zpřehlednění rozsáhleho kódu
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
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
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.
Pokud chci řadit dle svého, řeším to tak, že přidávám před název číselný prefix.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů