Nema prosim nekdo prehled o tom, kolik stoji tyto „male“ PICy v CR? Ja jsem se samozrejme dival na stranky firmy Microchip (jsou uvedene v clanku), ale pochybuji, ze jimi nabizena cena je pro koncove zakazniky nakupujici jednotlive kusy. Napriklad:
PIC10F200 30 centu (nejjednodussi PIC vubec)
PIC10F206 36 centu (ten by se mi libil :-)
PIC10F206 28,90 s DPH
Minimální odběr 1 ks.
http://www.gme.cz/cz/pic10f206t-i-ot-p967-166.html
UTFG :-)
O 2–3 kusy můžete Microchip jednoduše poprosit a možná Vám je pošle i zadarmo :)
http://www.microchip.com/samples/Default.aspx
Jeste jeden dotaz. Jaky je nejlepsi (to se asi tezko rekne ;-) osmibitovy mikroradic, kdyz budu chtit programovat v cecku? Znam sice assembler 8051, ale ta mi nepripadne moc dobra (a uz vubec ne pro cecko, ten kod co leze s prekladace je spatnej, to je problem instrukcni sady orientovane na akumulator), PIC10 nebo PIC12 je zajimavej, ale predpokladam, ze pro tak male MCU bude cecko problem ne? Nebo jit radeji primo do AVR, kde je podle vseho nejlepsi support na cecko?
Tak asi vybrat něco od Atmelu. Nevím, má-li vůbec cenu tyhle mrňky programovat v něčem jiném, než v Assembleru nebo případně Forthu. Navíc jsem toho názoru, že tyhlety jednoduché mikrořadiče jsou přesně těmi typy procesorů, kde i průměrný assemblerista vyprodukuje vždycky lepší kód, než i dobrý překladač vyššího jazyka. Akorát ta přenositelnost je pak holt problém…
Přenositelnost není v assembleru zas až tak těžká.Neříkám,že to je stejné jako u céčka,to by byla hloupost,ale důkladný popis funkce kódu samotného,stejně jako vytvoření souboru xxx.inc,který pak jednoduše vložíte do projektu,není až takový problém.Jasně že se to nevyrovná #ifndef _XTAL_FREQ #define _XTAL_FREQ 4000000
#endif…kde kompilátoru dopředu říkáte,že jestli je zvolen oscilátor s krytalem,je definovám kmitočet 4MHz,ale není to zas složité.Já mám takto uložené rutiny ovládání LCD,klávesnice,I2C…ty se pak jen vloží.Nemusím je znovu a znovu vymýšlet.A co se céčka týče,pro začátek bych viděl optimalizaci kódu např.v používání dočasných proměnných,pokud to lze v konkrétním případě použít.Než toto začátečník zvládne,než plně využije schopnosti kompilátoru,nemá ani cenu diskutovat o samotné optimalizaci kódu kompilátorem,protože dva lidé sice napíšou funkční program,ale velikost kódu může být naprosto odlišná.Alespoň tak to vidím já:-)
Jestli chcete psat v Ccku, tak si kupte rovnou ARMa, na hrani neni zase tak drahy (napriklad tenhle http://www.gme.cz/cz/at91sam7s64-au-p958-137.html stoji 200 kc) a s trouchu cviku neni problem ho pripajet normalni mikropajkou. Muzete si dokonce vybrat jestli ho pripojite pres RS-232 nebo USB. Taky neni potreba pri kazdem pokusu zapisovat program do flashky. Kdyz se vejde do RAMky muzete ho vyzkouset v ni (ten chip ma od vyrobce ve flashce takovej monitor kterej komunikuje po seriovy lince nebo USB a umoznuje presouvat data, cist/zapisovat pamet a skocit na nejakou adresu — kdyz si ho pri programovani flashky prepisete tak to nevadi, je mozne ho obnovit ze zabudovane ROMky drzenim vhodnych pinu v log. 1 pri zapnuti).
Ovsem jestli vam jde o vzpominku na stare casy kdy programator musel prechytracit 128mi polozkovy stack, spoustu osklivych omezeni na zdrojove/cilove registry instrukci apod. tak jste s PICem na te nejlepsi adrese. To fakt zadnej kompilator co znam nezvladne tak dobre jako se to muzou naucit lidi.
IMHO ma PIC vyznam jen jako ty 6tinozickovy ‚inteligentni transitory‘ nebo do zarizani ktera musi vydrzet 10 let provozu na jednu Li baterku nebo pokud vyrabite od neceho milion kusu a uspora kterou tak ziskate zacne byt zajimava. Jinak nema cenu s PICem ztracet cas (jak se transistory na chipu zmensuji a programatori hloupnu (nebo lenivi) tak tu bude co nevidet doba, kdy 8bitove kontrolery stejne nebude nikdo chtit pouzivat protoze na nich nebezi Java a minimum bude ARM, mozna ani ten ne ;).
Nějak mně Vaše vysvětlení nesedí např. s tím,proč tedy bastlíři neustále bastlí hodiny,budíky a všechny ty možný „povinnosti“,kterýma každej správnej bastlíř musí projít,když je dnes všechno k dostání za babku nař. v GM,kde seženete hotový budík za 60Kč,nebo různý kódový zámky…Jestli ono to není o tom,že ten bastlíř prostě není línej a chce si to postavit sám a dokázat,ověřit si tak svoje znalosti a dovednosti.Osobně by mne štvalo např. využít softu,kde na grafickém rozhraní zadáte text,který chcete zobrazit na displeji a ono to vyplivne hotovej kód.Tohle se může možná hodit v průmyslu,ale jinak je to degradace.Jás si takovou rutinu raději napíšu v assembleru či céčku a poté ji už použiji jako „hotovku“ s tím,že si kdykoliv můžu změnit její výstupní funkce.Po přečtení vašeho příspěvku by jeden nabyl dojmu,že nemá ani cenu začít jednočipy programovat.Všichni skončíme jako lenoši:-)))
Ano bastli budiky, a budou bastlit budiky, jenze k tomu brzo budou potrebovat 256KB RAM a Java-enabled CPU. Nerikam to proto, ze by se mi to libilo (sam programuju v C a ASM), ale proto, ze jsem si dovolil trochu odhadnout smer vyvoje.
Dneska uz taky temer nikdo nebastli budik tak, ze by ho postavil ze triceti obvodu stavebnice 74×x i kdyz je to stale mozne, ale da tam napriklad toho PICa. Vzhledem k tomu jak se posledni dobou vyucuje programovani (uz to tu bylo nekde probirano, ze maji studenti odkojeni Javou problem pochopit pointery) tak se domnivam ze jakmile integrace pokroci natolik, ze bude mozne snizit cenu Javovych CPU na uroven dnesnich PICu (rekneme te stredni rady), tak to nekdo zacne masivne vyrabet a vsem nutit, pouzije par reklamnich sloganu o prenositelnosti atd. (a taktne ponecha stranou otazku deterministickeho casovani) a vsichni tihle mladi to zacnou pouzivat. Mezitim par zbylych opravodvych programatoru odejde do duchodu a brzo budou vsichni pracovat v Jave a stary PICy mozna sezenete jen aby bylo mozne opravit stara zarizeni.
V tehle souvislosti si vzpominam, ze jeste na zacatku 80tych let se rikalo, ze analogove pocitace rozhodne v oblasti reseni diferencialnich rovnic maji sve misto o ktere je univerzalni digitalni pocitace nemuzou pripravit.
…ale já myslim,že to bude ještě nějaký čas trvat.Když se kouknu například na LCD displeje s řadičem a grafický,nedej bože touch(dotykový) displeje v amaterských aplikacích,uplyne ještě hodně vody,než se to chytne na této úrovni.Rozhodující je cena.Rozumím tomu,že v okamžiku,kdy bude RAMka,potažmo ROMka v jednočipu slušně velká,přestane člověka tížit v jistých okamžicích tížit velikost kódu a jak se říká,klidně nasadíte „na komára kanon“,tedy pokud to dovolí prostor na desce apod.To,co popisujete,se vlastně už děje,stačí se podívat na programování PLC,jako je Simatic či LOGO.Snaha o co nejpřivětivější uživatelské chování je logická,no je jasné,že to v jistých okamžicích může vadit.Ono to koukání na součástku jako na kouzelnou krabičku,do které se něco konkrétního nacpe a ono z ní něco konkrétního vypadne alespoň mně připadá jako jeden z principů OOP,zapouzdření:-)Já dělám s regulační technikou a např. vidím,jak se vyvíjí regulátory.Máte „jednoduchý“regulátor RWP a vedle něj nový typ od stejné firmy,který má v sobě již OS Windows.Na jedné straně u toho novějšího vidítě více možností,ale vy je pro danou aplikaci prostě nevyužijete,navíc celý systém je o něco pomalejší.Jinak já spíše reagoval na vaši poznámku o PICech,že se hodí jen ve Vámi uvedených příkladech, s čímž nesouhlasím.PICy jsou rovněž výkonné,jen se musí vybrat správný typ.Pozor,pořád se bavím o stejných třídách jednotlivých výrobců.Jo,ty analogové počítače,to jste trefil,no je to dáno právě tím pokrokem.Na závěr snad jen,že je šílený,jak se diskuse otočí nad obyčejným výběrem jednočipu pro začátečníka.Snad ho to neodradilo:-)))
Najlepsie z tychto malych uP na C-ko je AVR. Jadro je priamo navrhnute tak, aby mali kompilatory jednoduchu robotu. Kupte si nejaky velky typ (s vela Flash pamate na program). Male typy s 2048 slovami, su IMO pre C dost kravina, ale nejaka mega (povedzme taka ATmega64A so 64k) to u je ina kava.
Ja momentalne pouzivam ATMega 1284P-PU 128k Flash, 16kB RAM, 4kB EEPROM, puzdro DIP40. Cena cca. 5–10 €. Programator sa da vyrobit velmi jednoducho, napriklad tento: http://www.olimex.com/dev/images/avr-pg1b-sch.gif
Ten isty programator s malymi obmenami klik. Ako stabilizator(5V) treba pouzit nejaky moderny typ s malym ubytkom a malou vlastnou spotrebou.
BTW MartinX, ak flashujete pod linuxom, aky nastroj k tomu pouzivate a ako dlho vam to flashuje tych 128k?
Malá poznámka.:-)Nemůže mu to být jedno,jakou práci s tím má daný kompilátor?Podstatné je,jaký je výsledek,ne?Když už jsme u toho,„céčko“ není primárně určeno hlavně pro jakékoliv 8bity,nemyslíte?Když už bych měl argumentovat vhodností,co takhle jednobitové instrukce,adresovatelná paměť po jednotlivých bitech u AVR…?Tomu bych rozumněl.Ale ani toto není překážkou pro jiné typy procesorů.Je na daném kompilátoru,jak si s tím poradí,velikost kódu bude samozřejmě rozdílná.Ovšem dost pochybuji o tom,že začátečníkovi bude dělat problém právě velikost kódu:-)))Klidně malou aplikaci nacpu i do PIC16F676 s 1024 slovama.Asi tak.
Ja len interpretujem, to co vyhlsovali norsky vyvojari AVR jadra – bolo navrhovane sprecialne pre jazyk C. Asi prave preto obsahuje vami spominane instrukcie a pod. Co sa tyka velkosti kodu – kedysi som na AVR pisal asm dekodovanie RC5 (protokol dialkovych ovladani) a nevoslo sa to do 1024 instrukcii. Ale pouzil som zlozitejsi algoritmus (nie samplovanie ale detekcia fall hran).
Klidně si vyberte PICky.Soft máte integrovaný ve vývojovém prostředí MPLAB,navíc pokud budete vlastnit programátor PICKIT3(2),rovněž ho ovládáte z MPLABu.Rozblikat port zvládnete během tří minut,hned jak si přečtete manuál v PDFku v adresáři PICC lite.Je to sice v andličtině,ale nechá se to zvádnout.Nemusíte vůbec začínat s 32bitama či jinýma kalibrama,klidně takto programuji malé 16F676ky a není problém.Jde totiž o to naučit se v tom pohybovat,správná syntaxe atd…Mimochodem,k tomu programátou je i destička-kit s PIC18F45K20(tuším) a to už je slušnej procák na pokusy.Jinak vývojový prostředí PICC od HI-TECH je hodně nadupaný,výborná optimalizace,která je ale u free verze omezena,včetně velikosti kódu ,ale to Vám může být pro začátek fuk,pokud nebude honit každej byte.Aplikace jako ovládání LCD displeje,klávesnice,I2C,RS232…to vše v pohodě zvládnete.Ale nechci Vás zrazovat od konkurence,berte to jen jako námět:-)