Konverze do jazyka Arduina

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
misocko
Příspěvky: 1250
Registrován: 26 čer 2009, 02:00
Bydliště: Hlohovec (Sk)

#16 Příspěvek od misocko »

takto vyzeraju moje arduino zaciatky

Kód: Vybrat vše

int x=0;
int y=0;
void setup()
{
   Serial.begin(9600);  
}

void loop()
{
  x=analogRead(A0);
  if (x<101)
     {
      y=0;
      goto tu;
     }
  if (x<201)
      {
      y=3;
      goto tu;
     }
  if (x<301)
    {
      y=6;
      goto tu;
     }
  if (x<601)
    {
      y=9;
      goto tu;
     }
  if (x<801)
    {
      y=15;
      goto tu;
     }
  if (x<901)
    {
      y=18;
      goto tu;
     }
  if (x>900) y=20;

tu:
  if (y>10)
  {
    Serial.println(y);
  }

}

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#17 Příspěvek od ZdenekHQ »

Funkci goto se nám vždycky snažili vymlátit z hlavy, že odporuje strukturovanýmu programování. Ale jak vidím, je všude...
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[?
]

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#18 Příspěvek od Cowley »

Goto zahoď.
Podmínky seřaď sestupně a nech tu hodnotu y průběžně měnit od největší možné po nejmenší.
Na konci ji jenom prověř na větší než 10 a tak pořád dokola.

Uživatelský avatar
elnovy
Příspěvky: 769
Registrován: 04 črc 2010, 02:00
Bydliště: ČR - JČ
Kontaktovat uživatele:

#19 Příspěvek od elnovy »

misocko jsem ti napsal SZ
dik za funkční program bez keců kolem
el.návrhář HW a SW a DPS

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#20 Příspěvek od FHonza »

elnovy píše: Jak jsem psal se to C for arduano učim
a není to jen zde možno studovat
Tak to vřele doporučuju si najít jiné IDE, protože "arduiní" je peklo. Chybí snad všechno co dnešní IDE mají, včetně takových maličkostí jako bookmarky. O "našeptávání" ani nemluvě.

No a jestli píšeš pro ESP, tak si najdi multiplatformní, protože záhy budeš taky psát html, javascript.

Uživatelský avatar
misocko
Příspěvky: 1250
Registrován: 26 čer 2009, 02:00
Bydliště: Hlohovec (Sk)

#21 Příspěvek od misocko »

GOTO je moja "srdcovka". V robote mame manipulatory , u ktorych by som bez GOTO bol strateny, a kedze mna nikto neucil programovanie, tak ani neviem ze ho nemam pouzivat. Veselo ho teda uzivam na manipulatoroch, vo VBA pre excel a prvykrat aj v arduino - aj ked tu som rozmyslal ci to vobec bude rychlejsie ked to pouzijem.

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#22 Příspěvek od Cowley »

Misocko: tak to pak jo :)

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#23 Příspěvek od ZdenekHQ »

Pokud nepředáváš nějaké proměnné, ale jen řídíš funkce typu "nahoru dolu", je to vlastně jedno.

Ale jinak je to cesta do pekla.
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[?
]

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#24 Příspěvek od Cowley »

Goto Hell :)

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#25 Příspěvek od ZdenekHQ »

Jsem si říkal, že oblíbené linuxové dev/null by šlo povýšit na dev/hell a oni to kupodivu znají. Takže zase žádnej bod. :?
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[?
]

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#26 Příspěvek od mtajovsky »

Misocko, to je ale opravdu začátečnické. Při každé změně limitů se bude přepisovat kód. Tahle konsolovka ukazuje, jak to udělat aby se měnilo jen pole limitů:

Kód: Vybrat vše

// misocko.cpp

#include <stdio.h>

typedef unsigned int word;

static void loop(void);
static word translate(word x);

#define LIMITS_NUM  6
static word table[LIMITS_NUM + 1][2] = 
{
    {101, 0},
    {201, 3},
    {301, 6},
    {601, 9},
    {801, 15},
    {901, 18},
    {000, 20}
};


int main(int argc, char* argv[])
{
    do
    {
        loop();
    }while(true);
	return 0;
}

void loop(void)
{
word x;

    scanf("%u", &x);
    printf("->%u\n", translate(x));
}

word translate(word x)
{
    for(unsigned int index = 0; index < LIMITS_NUM; ++index)
    {
        if(x < table[index][0])
        {
            return table[index][1];
        }
    }
    return table[LIMITS_NUM][1];
}

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“