Hodiny a časování

Odpovědět
Uživatelský avatar
fulda
Příspěvky: 1368
Registrován: 04 led 2016, 17:18

Re: Hodiny a časování

Příspěvek od fulda »

Vladimir66 píše:zkousel jsem pouzit casovac (Timer2) pro odecet sekund v presruseni.
...
pro spustu veci presnost casovacu staci, pokud ne, tak externi hw je nutny.
-V66
No a další takovej :!:

Poslouchej, to ti ani není divné, že máš dva časovače uvnitř jednoho procesoru, které berou čas ze stejného zdroje a že ti jdou každej jinou rychlostí :?:

To je přece trochu dost blbost ne? Každému trochu soudnému člověku dojde, že někde soudruzi z NDR museli udělat chybu.

Takže znovu a lépe

Externí hw je nutný pro ty, kteří neumí programovat a neví, co se v jejich procesoru děje :!:

Že se tak ptám - který z časovačů vlastně považuješ za správný? Timer1, který dělá millis() a nebo Timer2, který jsi si nastavil?
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Hodiny a časování

Příspěvek od daton »

Víš Fuldo trochu míň agrese v příspěvcích a více trpělivosti s námi plebejci by bylo kostruktivnejsi. Už jsem lecos pochytil ale třeba přesně to jak píšeš o době trvání instrukci by mne taky zajímalo však o tom mělo být toto vlákno protože vlastně v zakládajícím příspěvku jsem se na toto nepřímo ptal proč jeden příklad kódu funguje a druhý je zzpožděn. ;)
Vladimir66
Příspěvky: 385
Registrován: 02 dub 2014, 15:30

Re: Hodiny a časování

Příspěvek od Vladimir66 »

to Fulda:
OK, beru na vedomi ALE jak se rika "ukazana plati.."
muzes mi napsat vzorek kodu, ktery mi na terminal bude vypisovat v PRESNYCH sekundovych intervalech millis bez ohledu na pocet a delky delayu v loopu ?
diky, (bez ironie)

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

Re: Hodiny a časování

Příspěvek od Dex »

Dvě věci:

- používejte, prosím, tlačítko Code - už jsem dva příspěvky opravoval
- Vláďo o tom, že "delay je zlo" jsme si přece říkali :lol:
"all your robots are belong to us"
robodoupe.cz
Vladimir66
Příspěvky: 385
Registrován: 02 dub 2014, 15:30

Re: Hodiny a časování

Příspěvek od Vladimir66 »

Ahoj,

jeden poucny link k tematu
http://www.forward.com.au/pfod/ArduinoP ... duino.html

Pokud se nekomu rozjede blikani LEDky po 4hodinach o neunosnou dobu, je neco spatne.
Zkousel jsem demonstrovat na (mozna hloupem) prikladu, ze rozdil nemuze byt tak dramaticky.

Cteni millis v preruseni neni chyba, ale nechci se o tom prit. zalezi PROC se to dela.
Mimochodem toto reseni jsem uspesne pouzil na robotickem dnu, kdy robot meril cas, jestli se pohybuje
na hristi (prejizdi cerne cary), nebo uz je mimo.
Ano, tam neslo o milisekundy..

Idealni tema si o tom popovidat 12.11. po 16hod.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Hodiny a časování

Příspěvek od daton »

Já bych byl vsema deseti pro diskusi a kdyby si k tomu tématu někdo něco připravil bylo by to super já bohužel takové znalosti nemám a proto bych je rád získal nejlépe na tom setkání :D
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Hodiny a časování

Příspěvek od jrt »

daton píše:Já bych byl vsema deseti pro diskusi a kdyby si k tomu tématu někdo něco připravil bylo by to super já bohužel takové znalosti nemám a proto bych je rád získal nejlépe na tom setkání :D
Myslím, že Davida nebude těžké přemluvit , aby k tématu na setkání něco řekl a dá se předpokládat, že k němu něco řeknou i ostatní zdejší "radilové", kteří se zúčastní.
Ovšem bylo by vhodné klíčové otázky ještě před setkáním položit sem, protože ani ten největší génius nenosí všechny své znalosti stále v hlavě.
A taky by bylo dobře, kdyby si ti, kterým diskuze k problému něco přinese dělali poznámky, ze kterých by mohl vzniknout článek, který by pomohl dalším tápajícím.
jrt
Uživatelský avatar
fulda
Příspěvky: 1368
Registrován: 04 led 2016, 17:18

Re: Hodiny a časování

Příspěvek od fulda »

Vladimir66 píše:Idealni tema si o tom popovidat 12.11. po 16hod.
OK, klidně k tomu něco řeknu.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
Příspěvky: 1368
Registrován: 04 led 2016, 17:18

Re: Hodiny a časování

Příspěvek od fulda »

Aby jste neřekli, že jen tlachám, tak přiložím tento kus kódu.
Cílem kódu je vypisovat vteřiny při zaneprázdněném procesoru.
V kódu najdete na dvou místech delay(257); (pro všímavé 257 je prvočíslo).
To slouží jako simulace zanerázdnění procesoru. Je celkem jedno, jaké je tam číslo a je celkem jedno, jestli jsou stejné. Podstatné je, že nemá přesahovat 1sec (nebo může, ale ne pořád, musí se kompenzovat dlouhé a krátké, jinak se o prostě nedá stihnout).

Vzhledem k tomu, že kód nemá šanci stihnout začátky vtrřin, tak se alespoň pokouší stihnout nejbližší dostupné okno.

Ale o tom víc v sobotu.

V mezičase si někdo může vyzkoušet pustit kód na dlouhou dobu.

Kód: Vybrat vše

unsigned long NextTick;

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
  // Dalsi krok hodin bude okamzite, poud bychom chteli, aby byl az za vterinu
  // tak tady dame:  NextTick=millis() + 1000;
  NextTick=millis();
}

void loop() {
  unsigned long MS;
  MS = millis();
  if ((NextTick <= MS) && ((NextTick>=1000) || ((NextTick<1000) && (MS<2000)))) {
    NextTick += 1000; // další tik bude za vteřinu od předchozího
    // tady se dělá co je potřeba
    digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(257);               // wait for a moment (pro jistotu prvocislo)
    digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
    Serial.print("Od startu: ");
    Serial.print(MS);
    Serial.print(" mili sekund, to je: ");
    Serial.print(MS / 1000);
    Serial.print(" sekund, nebo: ");
    Serial.print(MS / 3600000); // hodiny
    Serial.print(":");
    Serial.print((MS % 3600000) / 60000); // minuty
    Serial.print(":");
    Serial.print(((MS % 3600000) % 60000) / 1000); // sekundy
    Serial.println("");
  } else {
    delay(257);               // wait for a moment (pro jistotu prvocislo)
    }
}
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Vladimir66
Příspěvky: 385
Registrován: 02 dub 2014, 15:30

Re: Hodiny a časování

Příspěvek od Vladimir66 »

diky, vyzkouseno.

kdo chce lepsi millis nez default v Arduinu, tak si muze stahnout knihovnu z Githubu.
http://blog.zakkemble.co.uk/millisecond ... y-for-avr/

-V66
Odpovědět