Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

ARDUINO mega - opakovani funkce - VYŘEŠENO
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mtajovsky



Založen: Sep 19, 2007
Příspěvky: 3697
Bydliště: Praha

PříspěvekZaslal: st říjen 07 2015, 19:57    Předmět: Citovat

Ten nebude vidět z principu. Měl byste si něco pečíst o blokové struktuře programu a rozsazích viditelnosti.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
jiri255



Založen: Apr 18, 2013
Příspěvky: 168

PříspěvekZaslal: st říjen 07 2015, 19:58    Předmět: Citovat

když ten program pustím a dívám se do serial výpisu, tak tam vidím,
že se pořád opakuje ta getTest a tu hlavní podmínku to vezme v úvahu jen při spuštění a pak už se to k ní nevrací testoval jsem to na tom teplomer1 větší jak 50
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: st říjen 07 2015, 19:58    Předmět: Citovat

ZdenekHQ napsal(a):
Asi se budu muset naučit další programovací jazyk, ale hlavní smyčka snad nezačíná "void" ?

A co by měla vracet a hlavně komu, když nad ní nic není?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: st říjen 07 2015, 20:01    Předmět: Citovat

jiri255 napsal(a):
když ten program pustím a dívám se do serial výpisu, tak tam vidím,
že se pořád opakuje ta getTest a tu hlavní podmínku to vezme v úvahu jen při spuštění a pak už se to k ní nevrací testoval jsem to na tom teplomer1 větší jak 50

Jak můžeš vidět na sériovém výpisu funkci getTest, když ta na sériový port nic neposílá?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st říjen 07 2015, 20:03    Předmět: Citovat

Z Pascalu jsem zvyklej na "begin" a "end", void je snad alternativa "procedure" nebo "function", které samozřejmě unvitř mají opět begin a end.

Takže hlavní smyčka by měla být "loop", ne "void loop" ?

Ale tady jsem na tenkém ledu, tohle je mimo moje znalosti.

_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
jiri255



Založen: Apr 18, 2013
Příspěvky: 168

PříspěvekZaslal: st říjen 07 2015, 20:03    Předmět: Citovat

z te void getTest se to ma vratit zpet do loop na to if zkontrolovat ho to a podle podminky zvolit bud getzkouska nebo getTest potom vykonat jeden z tech zvolenych a vratit se zase do loop na to if znova zkontrolovat podminku a opet vykonat bud getZkouska nebo getTest a takhle porad dokola,
ale s tech void getneco se to nad to if nevraci Sad


Naposledy upravil jiri255 dne st říjen 07 2015, 20:04, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zmije



Založen: Jun 30, 2005
Příspěvky: 1569
Bydliště: Pardubický kraj

PříspěvekZaslal: st říjen 07 2015, 20:03    Předmět: Citovat

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: st říjen 07 2015, 20:06    Předmět: Citovat

ZdenekHQ napsal(a):
void je snad alternativa "procedure" nebo "function", které samozřejmě unvitř mají opět begin a end.

void loop říká, že to co funkce loop vrací nikoho nezajímá. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frpr666



Založen: Dec 28, 2009
Příspěvky: 1051

PříspěvekZaslal: st říjen 07 2015, 20:07    Předmět: Citovat

citace:
už se to k ní nevrací

možná se vrací, ale navenek se to jeví, že se to nevrací. Very Happy
Podle mě děláš moc složité programy, zkus to trochu zjednodušit. Stáhni si na webu nějakou knihu o programovaní v C.
no pain - no gain Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: st říjen 07 2015, 20:07    Předmět: Citovat

jiri255 napsal(a):
ale s tech void getneco se to nad to if nevraci Sad

Ptám se znovu, jak víš, že se to z těch getneco nevrací? Ono to nevypisuje na sériový port bezi/nebezi?:
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jiri255



Založen: Apr 18, 2013
Příspěvky: 168

PříspěvekZaslal: st říjen 07 2015, 20:08    Předmět: Citovat

do tech void getneco jsem pridal serialprint a vidim ze se vykonava porad jen ta jedna podminka navic kdyz je teplota pod 50 ma to delat getZkouska a kdyz ji zvysim nad 50 ma to delat getTest a to funguje jen pri zapnuti arduina vybere to pokud je teplota pod 50 getZkouska a pak uz je jedno jestli teplotu zvysim nad 50 porad se toci ta getZkouska a k te hlavni funkci napsane v loop uz se to nevrati pokud znova neresetuju arduino...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st říjen 07 2015, 20:08    Předmět: Citovat

lesana87 napsal(a):
ZdenekHQ napsal(a):
void je snad alternativa "procedure" nebo "function", které samozřejmě unvitř mají opět begin a end.

void loop říká, že to co funkce loop vrací nikoho nezajímá. Smile


Aha. Děkuji.

_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: st říjen 07 2015, 20:11    Předmět: Citovat

V getTest ti chybí uzavírací závorka za tělem funkce, to ti nevadí?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mtajovsky



Založen: Sep 19, 2007
Příspěvky: 3697
Bydliště: Praha

PříspěvekZaslal: st říjen 07 2015, 20:12    Předmět: Citovat

zmije << Jo, to je příklad smysluplného goto, i když já raději uzavřu výkonnou část kódu do:
kód:

do
{
    ...
    if (error) break;
    ...
}while(0);

// záverečné a úklidové akce


a namísto goto se pak užije break. Jiný dobrý příklad pro goto je ukončení vícenásobně vnořeného cyklu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
mtajovsky



Založen: Sep 19, 2007
Příspěvky: 3697
Bydliště: Praha

PříspěvekZaslal: st říjen 07 2015, 20:26    Předmět: Citovat

lesana87 napsal(a):
V getTest ti chybí uzavírací závorka za tělem funkce, to ti nevadí?
Že to nevyhodil překladač?

jiri255 << V prvé řadě pište kód přehledněji. Nic nevnucuji, ale například:
kód:

void loop()
{
// ------ hlavni funkce ke ktere se potrebuju vracet -----

    if (teplomer1() >=50)
    {
        Serial.print("nebezi");
    }
    else
    {
        Serial.print("bezi");
        getTest();
    }
}

void getTest()
{
    if (teplomer2() <= 30)
    {
        digitalWrite(2,HIGH);
/*
 * a tady muzou byt dalsi podminky
 * else if a podobne
 * sem nekam potrebuji vlozit neco
 * co rekne, aby se to zase vratilo
 * do loop     
*/
    }


je asi přehlednější a ta chybějící závorka je hned vidět.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
Strana 2 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.19 sekund