Stránka 1 z 1

Podmíněná kompilace/struktura programu

Napsal: 13 zář 2019, 09:11
od pavel1tu
Zdravím,
jako dost neprogramátor prosím o postrčení správným směrem.

Potřebuji projekt strukturovat (využívám záložky) - skvělé.
potřebuji zapínat mód ladění v kodu - používám "#define testovani 0/1" - skvělé.

Potřebuji držet hlavní část programu stejnou, části podle HW (modul WiFi, 433MHz, atd.) aby kompilátor buď vkompiloval nebo ne. Něco jsem na netu našel, ale nevíte o nějakých příkladech nebo ideálně českém popisu - nevím ani co zadat do vyhledávání. "Podmíněná kompilace" mi vypadává C++ a tam to znám.

Moc děkuji

Re: Podmíněná kompilace/struktura programu

Napsal: 13 zář 2019, 14:55
od Wojta
Chápu to správně že máš moduly které chceš vkompilivat podle přepínačů?

Použil bych normálně #ifdef a #endif. Když si tím správně ohraničíš kód, dosáhneš přesně čeho potřebuješ. Úplně ideální je brát každý modul jako knihovnu. V *.h souboru tedy udělat standardní kombinaci:

Kód: Vybrat vše

#ifndef nazevmodulu

#define nazevmodulu

Definice funkcí atd.

#endif
Takto se při includu modulu do projektu zadefinuje "nazevmodulu". V hlavním kódu, říkejme tomu jádro, pak vhodně zabalíš kousky kódu do #ifdef a #endif

Jako příklad, pokud by jsi měl takto zařízený modul na 433Mhz, mohlo by to vypadat takto.

433lib.h

Kód: Vybrat vše

#ifndef 433lib

#define 433lib

void odesli(byte neco);

#endif
jadro.c

Kód: Vybrat vše

#include <433lib.h>

void loop(){
  //Funkce se vykoná vždy
  nejakafce ();

  //Funkce se vykoná a kompiluje jen pokud je v programu #include<433lib.h>
  #ifdef 433lib
    odesli('A');
  #endif
}

Re: Podmíněná kompilace/struktura programu

Napsal: 13 zář 2019, 15:11
od gilhad
Ono to neni nahodou - "Ardiuno ino" je normalni C++ s knihovnou Wiring a trochou cachrovani, kde se funkcim doplni deklarace, aby se daly definovat v libovolnem poradi. Plus debilni IDE. Nic vic. Normalne se to da prekladat i klasicky makefilem, pokud si poradis s poradim funkci, nebo si das ty hlavicky dopredu.

Takze na to pouzij normalne C++ a (az na omezenou knihovu a problemys stdin/out/err, ktere na AVR nejak moc nejsou) to normalne bude fungovat.

Re: Podmíněná kompilace/struktura programu

Napsal: 13 zář 2019, 15:24
od pavel1tu
děkuji
začínám testovat ....