LukinoOl píše:
napíšeš si vlastní a bez hromady nevyužitého balastu, stejně zjistíš, že vlastní implementace bez knihoven je lepší
To můžu několikrát podtrhnout. Ale je to dost velká práce. Já často dělám kompromis, že vezmu z knihoven to, co se mi hodí (což jsou obvykle funkce na nejnižších úrovních) a zbytek si doplnim. Zase mi přijde zbytečný dělat knihovny od nuly pro něco, pro co už jsou. Vlastní knihovny, pro můj vlastní hw (třeba externí SRAM) jsem dělal možná dvě, tři. Jinak většinou člověk najde na internetu něco, z čeho může vyjít a je tak zbavený té nejšpinavější práce.
Osobně používám AVR studio od Atmelu, vývojové prostředí arduino IDE mi moc k srdci nepřirostlo. Jsem holt rozmazlený vymoženostmi jako doplňování kódu (napíšu POR a dám ctrl+mezerník a nabídne se mi hned PORTA PORTB.... a já si jen vyberu), procházení podle identifikátorů (stačí kliknout na Go a jsem hned na deklaraci identifikátoru) a další vymoženosti, které arduino IDE nemá ani na úrovni starého Delphi.
Arduino jako takové příliš nepoužívám, ale taky jsem to nevydržel (při ceně 198 korun) a jeden klon jsem si koupil, takže jednu destičku mám. Na jednodušší akce to stačí. Předtím jsem používal a dosud používám samotný AVR od tiny13 po mega128 (radši mám mega1284, nemá tolik periferií jako mega128, ale je dostupný v DIL a tak se dá používat v kontaktním poli) Díky tomu jsem zjistil, jak pohodlné je použití bootloaderu, do té doby jsem programy loadoval z paralelního portu (ohlídal jsem si, aby i ten nejnovější PC ho měl) do SPI. Teďkon tam takto naloaduju bootloader (a příslušné pojistky, které ho povolí) a program už opakovaně nahrávám do sériového portu přes USB redukci. Sám boatloader má necelých 512 bajtů nebo wordů (to teď nevim), a ještě se mi nestalo, že bych se s programem dostal na takovou velikost, že by mi překážel.
Všichni jsme začínali stejně. Blikání LED je prostě základ a je to první věc, co člověk musí vyzkoušet. Pak teprve ledku nahradí něčím jiným. Můj první program pro AVR (tehdy tiny2313) ale vypadal nějak takto
tím jsem zjistil, jestli to AVRassembler přeloží (byl tam i nějaký simulátor, tak jsem si to krokoval) a jestli to načte programátor atd. Pak jsem do té smyčky přidal blikání ledky (a nějaké zpoždění, abych ho viděl i mimo simulátor), vše tehdy v assembleru. Pak jsem teprve přidal import knihovny, abych se nemusel na port dostávat číslem. Céčko se mi za celou dobu, co jsem používal verzi 4 AVR studia nepovedlo nakonfigurovat (a na to co jsem tehdy dělal ten assembler stačil), ve verzi 5 to potom šlo. On je i v těch nových simulátor, ale protože jsem většinou závislý na interakci s vnějším hw, tak ho použiju málokdy.
To byly jenom takové vzpomínky, jak jsem před ne tak dlouhou dobou začínal s mikrokontroléry. Bylo to ještě v době před masovým rozšířením arduina (slovo arduino jsem zaregistroval o dost později). Ne že bych nikdy neprogramoval, dělal jsem s DSP56F807 od motoroly a OMAP107 od texas instruments, ve škole jsme něco dělali s 80196 (bráška 80186) a možná by se ještě našlo pár typů, co mi prošlo rukama. Ale to prostě nebylo ono. To byla nějaká vývojová deska, drahá vývojová deska, k tomu musel být drahý programátor. V případě AVR se mi líbilo, že nepotřebuju drahý programátor (stačí pár drátů z paralelního portu, které jsem pro jistotu oproti původním plánům posílil hradlem, ale pořád mě ten "programátor" vyšel na nějakých max 50 korun a ne na tisíce) a že je vše potřebné dobře a přehledně zdokumentované. A při tehdejší ceně tiny2313 kolem 50 korun si mě AVRka získala i přes to, že jsem taky skoro nic neuměl (a při zjištění, že při přechodu na jiný procesor (tehdy třeba mega48) vyžaduje program jen drobné nebo žádné změny jsem doslova chrochtal blahem).