No, vítejte v realitě.
Kdysi jsem se pokoušel použít Arduino třídu pro obsluhu rotačního inkrementálního enkodéru. Za jistých okolností to fungovalo, ale při pomalém otáčení to všelijak přeskakovalo nebo nesnímalo. A pak jsem sedl do služební Oktávky s točítky na volantu. Ty se chovaly úplně stejně. Co to znamená, kromě toho, že jsem si tu třídu napsal sám a funkční? Raději nedomýšlět. :-D
Nepřispěl. Popravdě mě to ani nenapadlo. Ale máte pravdu, takhle vypadám jako škarohlíd a konstruktivní přítup nikde.
Ten projekt, co jsem dělal, nebyl postaven na Arduinu, chtěl jsem si jen ulehčit život a nevymýšlet kolo. Když se nyní dívám na https://github.com/PaulStoffregen/Encoder/blob/master/Encoder.h (a netuším, jestli jsem tehdy chtěl použít tuto knihovnu nebo jinou), zde je chyba opravena - šlo o chybějící stavy komentované "no movement" - kód počítal s ideálním enkodérem, kde by tyto stavy nemohly vzniknout, ale v reálu, alespoň s tím co jsem měl, vznikaly a kód je interpretoval jako pohyb.
Obávám se, že i kdybych ten projekt dělal na Arduinu, opravu bych stejně neposlal, protože si o sobě rozhodně nemyslím, že páchám skvělý kód. Produkční kód jsem nepsal min. 15 let a hádanku z článku jsem nevyluštil, za což se stydím sám před sebou. No jo, hlava zapomíná.
Stejně si myslím, že i kód v https://github.com/PaulStoffregen/Encoder/blob/master/Encoder.h je špatně. U posunů o dvě hodnoty (Result +2 nebo -2) nejde jednoznačně určit, jestli se jedná o kladnou nebo zápornou hodnotu.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 51 057×
Přečteno 23 933×
Přečteno 22 867×
Přečteno 20 947×
Přečteno 17 755×