Hodiny a časování

Odpovědět
Jirka
Příspěvky: 31
Registrován: 18 lis 2015, 12:06

Re: Hodiny a časování

Příspěvek od Jirka » 26 lis 2016, 11:04

Vím, že je to mimo téma (ale myslím, že kvůli přehlednosti je snad zbytečné zakládat nové téma).
Má někdo zjištěno kolik může být v switch (x) { case 0: { } } těch case?
Pokud je to vůbec omezeno jinak než pamětí.

Vladimir66
Příspěvky: 125
Registrován: 02 dub 2014, 15:30

Re: Hodiny a časování

Příspěvek od Vladimir66 » 26 lis 2016, 13:38

teoreticky je to omezeno pameti,
nekde jsem cetl, ze nektery kompilator vyhodnocoval "case 110" jako "case 10" , ze nebral tri cislice..
potrebujes stovky podminek ?
https://programmingelectronics.com/tuto ... d-version/

tento link je muj velmi oblibeny (vetsinu "spatnych" prikladu pouzivam :()
http://www.gammon.com.au/tips

-V66

pekny link o millis() a jeho porovnavani
https://arduino.stackexchange.com/quest ... s-rollover
Naposledy upravil(a) Vladimir66 dne 04 čer 2017, 23:22, celkem upraveno 1 x.

Jirka
Příspěvky: 31
Registrován: 18 lis 2015, 12:06

Re: Hodiny a časování

Příspěvek od Jirka » 26 lis 2016, 16:56

Ahoj, díky za reakci prostuduji.
Šlo mi o řízení jakousi postupkou (tedy x kroků) a zrychlení procesu (aby se nekontrolovaly podmínky postupně a zbytečně).
Zkusil jsem to do 300 - bez problémů.Dokonce i s číslováním po 10ti (aby se dalo vkládat opomenuté).

Uživatelský avatar
Dex
Administrátor
Příspěvky: 621
Registrován: 16 úno 2013, 14:26

Re: Hodiny a časování

Příspěvek od Dex » 26 lis 2016, 19:07

Vím, že je to mimo téma
Témata jsou zdarma, takže příště , prosím, ... ;)
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

Jirka
Příspěvky: 31
Registrován: 18 lis 2015, 12:06

Re: Hodiny a časování

Příspěvek od Jirka » 28 lis 2016, 09:09

od Vladimir66 » 26 lis 2016, 13:38
Stovky podmínek? No nevím kolik. Ale dělal jsem tester desek (pevná logika) nebo i jednduché řízení tak jsem to rozdělil na kroky.
Ale ve např.60tém kroku je již zbytečné procházet přes to co bylo (a již je vykonáno) nebo teprve bude (až bude splněn právě zpracovávaný krok).

od Dex » 26 lis 2016, 19:07
dal jsem to jen sem protože si myslím, že to bude zajímat málo koho a na hlavní stánce by to jen znepřehledňovalo (na Slovensku zakládá nové téma každý a třeba je to pak x krát místem). Polepším se.

DavidO
Příspěvky: 260
Registrován: 01 kvě 2013, 21:27

Re: Hodiny a časování

Příspěvek od DavidO » 29 lis 2016, 20:53

Tak já to úmyslně utrhnu, přečtěte si mou odpověď zde.

snail
Příspěvky: 35
Registrován: 24 úno 2013, 22:52

Re: Hodiny a časování

Příspěvek od snail » 30 pro 2016, 23:13

Jednodušší možnost, jak naprogramovat hodiny v Arduinu, netrpí neduhy při přetečení hodnoty millis():

Kód: Vybrat vše

unsigned long  tik, ms;
int sec;

void setup() {
    tik = millis() + 1000;
}

void loop() {
  ms= millis();
  if (ms - tik < 500) {
    tik += 1000;
    sec++;
    // atd...
    // tento kód se provede každou sekundu
    // konstanta 500 musí být tak velká, aby se během této doby 
    // stačila hlavní smyčka dokončit za všech okolností
    // teoretické maximum je -1000UL
  }
}
J. Hanzal

pgerla
Příspěvky: 240
Registrován: 11 dub 2013, 00:17

Re: Hodiny a časování

Příspěvek od pgerla » 31 pro 2016, 16:58

Lepší než zdegenerovat je generovat 1 Hz na Timer1 ... pak už jsme omezení jen svou omezeností. Takové hodiny nepřetečou dřív než vyteče elektrolit z baterie.

Odpovědět

Kdo je online

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