Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Teodor

Stran: 1 [2] 3 4 5
16
Vývoj / Re:Prioritizace vláken v C
« kdy: 23. 08. 2016, 18:31:06 »
V jakém ročníku? Jen abych měl představu jak to dneska na FEL vypadá...
Radši si udělej představu, jak nebýt mentálně zaostalý na úrovni posměvačného děcka.

To ale není o posmívání. Trocha sarkasmu ještě nikoho nezabila. Pokud tazatel opravdu objektivně hledá vinu za tento stav, neměl by se takto lehce zbavovat vlastní zodpovědnosti za podíl na ní. To jsem se snažil naznačit. Myslím že mnoha lidem by neuškodila nějaká ta zdravá míra pokory.

Mi se neospravedlňuj, a začni s tou pokorou třeba u sebe.
"Ti" se neospravelňuji, nemám to zapotřebí. Ale když jsi zareagoval na odpověď, která nebyla určena pro tebe, předpokládal jsem, že očekáváš odpověď a chceš vést diskuzi. Zjevně ne.

Odešel jsem ve druháku, takže většinu IT předmětů jsem měl bez problému splněnou, mikroprocesory kupodivu za dva.
Můj názor na FEL ZČU nikdo neveme :) A to jsem byl i členem ak. senátu.)

17
Vývoj / Re:Časovač vláken v c++ pod Linuxem
« kdy: 23. 08. 2016, 18:29:05 »
Tak znova já,
a zase vlákno.
Potřebuju nějaký brainstorming ohledně vlákna, které čeká na událost a pak ještě využít timer v c++ pod linuxem, který mi bude časovat po zadaný čas.
A nechtěl bys to radši napsat ještě maďarsky? Takhle možná někoho geniálního může napadnout, na co se vlastně ptáš.

V podstatě mi jde o to, aby vlákno zareagovalo když se na vstupu jakéhokoli pinu objeví log 1(+5V) a timer mi změřil nějaký odchylky, maximální a minimální odchylku od vzorkovací frekvence)

No a co je na tom za problém? Opět myslím, že samostatné vlákno na tohle vůbec nepotřebuješ, ale to je vedlejší, protože ať to poběží v hlavním vlákně nebo někde jinde, logika bude stejná. Prostě s dostatečnou vzorkovací frekvencí čti ze vstupu data a dle potřeby zareaguj. Stačí ti na to if a nanosleep().

Já jsem se tu ztratil, čekal jsem, že se tu budou problémy řešit věcně a ne, že se tu bude trefovat do mne nějaký anonym ohledně ZČU, na kterou mám svůj názor.
Můžeme to když tak pořešit přes SZ????

18
Vývoj / Re:Časovač vláken v c++ pod Linuxem
« kdy: 23. 08. 2016, 14:09:39 »
Tak znova já,
a zase vlákno.
Potřebuju nějaký brainstorming ohledně vlákna, které čeká na událost a pak ještě využít timer v c++ pod linuxem, který mi bude časovat po zadaný čas.
A nechtěl bys to radši napsat ještě maďarsky? Takhle možná někoho geniálního může napadnout, na co se vlastně ptáš.

V podstatě mi jde o to, aby vlákno zareagovalo když se na vstupu jakéhokoli pinu objeví log 1(+5V) a timer mi změřil nějaký odchylky, maximální a minimální odchylku od vzorkovací frekvence)

19
Vývoj / Časovač vláken v c++ pod Linuxem
« kdy: 23. 08. 2016, 13:29:53 »
Tak znova já,
a zase vlákno.
Potřebuju nějaký brainstorming ohledně vlákna, které čeká na událost a pak ještě využít timer v c++ pod linuxem, který mi bude časovat po zadaný čas.

20
Vývoj / Re:Prioritizace vláken v C
« kdy: 23. 08. 2016, 05:51:46 »
S bit fields na mne vyrukovali v práci jako první, jenže v C++. Bitové pole a uniony jsem viděl naposledy na VŠ právě u jednočipů, od té doby jsem to pustil z hlavy. J mám zakázáno dělat to v C++, taže věci z C co jsem měl na škole jsem prostě vypustil z hlavy...
U tý masky teda použít union???

Šiš, to je materiál. Co to bylo za školu, Teologická fakulta Jihočeský univerzity?
Ne, FEL západočeská univerzita -> fůra nepodstatných sraček.

Takže za to, že vůbec nerozumíš céčku může škola? Vlastně asi jo, nechali tě prolézt.

Rejpej si do někoho jiného a o mne se nestarej, k tématu jsi ničím nepřispěl, ale asi jsi student FELu v Plzni....)

To byla má reakce na tvé duchaplné "Ne, FEL západočeská univerzita -> fůra nepodstatných sraček."

A ne, nejsem student FEL. Ale když jsem ji někdy před skoro 2 desítkami let absolvoval, vůbec by mně nenapadlo tvrdit takové věci o unionu. A upřímně, ani o práci lidí na fakultě...

No doba se změnila, a já jsem rád, že jsem z Plzně odešel dobrovolně pryč.)

21
Vývoj / Re:Prioritizace vláken v C
« kdy: 22. 08. 2016, 14:52:33 »
S bit fields na mne vyrukovali v práci jako první, jenže v C++. Bitové pole a uniony jsem viděl naposledy na VŠ právě u jednočipů, od té doby jsem to pustil z hlavy. J mám zakázáno dělat to v C++, taže věci z C co jsem měl na škole jsem prostě vypustil z hlavy...
U tý masky teda použít union???

Šiš, to je materiál. Co to bylo za školu, Teologická fakulta Jihočeský univerzity?
Ne, FEL západočeská univerzita -> fůra nepodstatných sraček.

Takže za to, že vůbec nerozumíš céčku může škola? Vlastně asi jo, nechali tě prolézt.

Rejpej si do někoho jiného a o mne se nestarej, k tématu jsi ničím nepřispěl, ale asi jsi student FELu v Plzni....)
Ostatním díky za oživení vědomostí, přeci jen OOP je mi bližší. 
Jinak řešení bylo jinde než v SW, ICO nemá 0V při rozepnutí, ale 4,5, takže proto mi neustále lítala 1. Stačilo propojit dvě země, aby nebyli v luftu.

22
Vývoj / Re:Prioritizace vláken v C
« kdy: 22. 08. 2016, 09:18:31 »
S bit fields na mne vyrukovali v práci jako první, jenže v C++. Bitové pole a uniony jsem viděl naposledy na VŠ právě u jednočipů, od té doby jsem to pustil z hlavy. J mám zakázáno dělat to v C++, taže věci z C co jsem měl na škole jsem prostě vypustil z hlavy...
U tý masky teda použít union???

Šiš, to je materiál. Co to bylo za školu, Teologická fakulta Jihočeský univerzity?
Ne, FEL západočeská univerzita -> fůra nepodstatných sraček.

23
Vývoj / Re:Prioritizace vláken v C
« kdy: 21. 08. 2016, 19:34:47 »
V C by se dala použít i bitová pole, googlujte "c bit fields". Ale pro běžného programátora bude čitelnější případ s maskami. Bitové pole není příliš běžná konstrukce, očekával bych její použití spíše na jednočipech než na PC.

S bit fields na mne vyrukovali v práci jako první, jenže v C++. Bitové pole a uniony jsem viděl naposledy na VŠ právě u jednočipů, od té doby jsem to pustil z hlavy. J mám zakázáno dělat to v C++, taže věci z C co jsem měl na škole jsem prostě vypustil z hlavy...
U tý masky teda použít union???
osobně bych se použíti union + bitové pole vyhnul, v některých situacích to není moc přenositelné a neřekl bych, že přináší nějaké výhody, určitě není přehlednější, maska je naprosto přímočará

Chlapi, díky za radu. Protože já si olutně vůbec tyhle věci z VŠ absolutně vůbec nevybavuji.
Zítra to odzkoušim a pak to tu nějak shrnu, snad pozitivně :)

24
Vývoj / Re:Prioritizace vláken v C
« kdy: 21. 08. 2016, 13:37:30 »
V C by se dala použít i bitová pole, googlujte "c bit fields". Ale pro běžného programátora bude čitelnější případ s maskami. Bitové pole není příliš běžná konstrukce, očekával bych její použití spíše na jednočipech než na PC.

S bit fields na mne vyrukovali v práci jako první, jenže v C++. Bitové pole a uniony jsem viděl naposledy na VŠ právě u jednočipů, od té doby jsem to pustil z hlavy. J mám zakázáno dělat to v C++, taže věci z C co jsem měl na škole jsem prostě vypustil z hlavy...
U tý masky teda použít union???

25
Vývoj / Re:Prioritizace vláken v C
« kdy: 19. 08. 2016, 22:48:33 »
ty mas osmibitovou promrnnou pins a z ni chces jednotlive bity ne?

neni lepsi modifikovat vyberovou masku a nekazit pins?!

for(maska=1;maska<=8;maska*=2)
  vyber_bit = pins & maska;

Jj, přesně tak.
Zajímavý, já chtěl co nejjednodušší řešení a vymaskování mne nenapadlo.
Nicméně já to stejně mohu otestovat až v pondělí v kanclu na tom HW, doma ho nemam.
Ale díky za tip! :)


26
Vývoj / Re:Prioritizace vláken v C
« kdy: 19. 08. 2016, 19:48:19 »
Ta knihovna, kterou používáš je Cčková, takže o žádných C++ových referencích nemá ani tušení. Unární & na pravé straně výrazu funguje v C++ úplně stejně jako v C, takže ICO300_get_DI(&pins) předá té knihovní funkci ukazatel na proměnnou pins.
Kód: [Vybrat]
uint8_t &stav = pins;
vyrobí referenci stav na proměnnou pins. pins i stav budou tedy přestavovat tutéž proměnnou. Proč všude nepoužiješ akorát tu proměnnou pins? Kopírovat si to někam jinam mi nepřijde nijak užitečné.

To jsem tak měl původně, nicméně mi přijde divný, že to prostě neprovede ten logický součin, ale přiřadí mi to tam 1 a kdybych to násobil třema tak mi to do konzole prostě vytiskne jen číslo tři.
Já to budu schopen zase otestovat v pondělí v práci, na tý specifický mašině.

27
Vývoj / Re:Prioritizace vláken v C
« kdy: 19. 08. 2016, 14:18:25 »
Na závěr máš guláš v operátorech. "&" není logický součin, ale bitwise součet. Logický součin by byl "||".
Whoops, koukám že s těmi českými termíny mám problém já:) AND = součin = &&, OR = součet = ||.

No, já mám spíš návyky z C, v C++ mam trochu guláš, takže já ty chyby už poupravil, ale teď si lámu nad tím, jestli používám správně referenci v tomhle kusu kódu:

Kód: [Vybrat]
uint8_t pins;

ICO300_get_DI(&pins);

uint8_t &stav = pins;

Smysl je načíst osm pinů-bitů přes fci ICO300_get_DI() a referencí to předat další proměnné se kterou už pracuji normálně.
Napadlo mne použít pointer, ale to by byla v tomto případě nejspíš prasárna..

28
Vývoj / Re:Prioritizace vláken v C
« kdy: 19. 08. 2016, 12:42:01 »
co tak
Kód: [Vybrat]
pins = pins >> 1;
?

Když provedu logický součin (pins & 1) tak to mi tam přiřadí tu jedničku, což by se nemělo vůbec stát, ne????

29
Vývoj / Re:Prioritizace vláken v C
« kdy: 19. 08. 2016, 10:35:45 »
Pánové moc děkuji za vyčerpávající odpovědi.
Ale teď mi nejde o přesnost toho vzorkování,  protože jsem se zasekl na de...lním bit shiftu.
Tady je kód a popis chyby.
Přitom scanování to neustále vypisuje 1 a nereaguje na změny stavu jednotlivých pinů. Myslel jsem si, že by to vyřešila priorita vlákna, ale to by na to stejně nemělo vliv.

Kód: [Vybrat]
void threadf() {

while (true) {

wait(200);

unsigned int pins;

ICO300_get_DI(&pins);

for(int i = 0; i <= 8; i++) {

cout << " STAV: " << int(pins & 1) << endl;

pins >> 1;

}


}

}

30
Vývoj / Prioritizace vláken v C
« kdy: 17. 08. 2016, 12:45:15 »
Čau ve spolek,
můj dotaz směřuje k vláknu.
Mám vlákno, co mi scanuje v periodě(cca 100ms) nějaký příchozí data, nicméně se mi stává, že data jsou občas přesná a občas přesná nejsou. Napadlo mne vyřešit to prioritou vlákna?? Nicméně s vlákny začínám a docela v tom tápu.
Je to pro linux Debian 7 wheezy.

Tady je kód:

Kód: [Vybrat]
#include <stdio.h>
#include <unistd.h>
#include <cstdint>
#include <thread>
#include <iostream>
#include <iomanip>
#include "boost/date_time/posix_time/posix_time.hpp"

extern "C" {

#include "libico300.h"

}

using namespace std;
using namespace boost::posix_time;

void wait(int milli_seconds) {

this_thread::sleep_for(chrono::milliseconds(milli_seconds));

}

void threadf(int cas) {

int a = 0;


while(true) {

wait(cas);

uint8_t stav;

ICO300_get_DI(&stav);

if (stav != a) {


cout << " VZESTUPNA HRANA " << endl;

}
else {


cout << " SESTUPNA HRANA " << endl;

     }


a = stav;


}

}


int main() {


char c;

ICO300_set_DIO_mode(0xff);
int parametr_cas;

cout << " Zadejte cas v [ms]: " << endl;
cin >> parametr_cas;


thread t{threadf,parametr_cas};

return 0;

}

Stran: 1 [2] 3 4 5