programujete někdo 8051 v Cčku?

a jakej je v tom rozdil od asm? :question:

Co se tyka pohodli pri psani programu, tak je rozdil asi jako mezi skodou 120 a octavii :slight_smile: (ve prospech C samozrejme). Co se tyka rychlosti programu na 8051, je to presne naopak… 8051 nema pro C vubec prizpusobenou architekturu. Pokud nevis, co je C, tak ti to lip asi nevysvetlim :slight_smile: Jediny x51, pro ktery je C pouzitelny jsou snad jen od silabs (1-cyklovy jadro a frekvence az 100MHz).

Jestli chces programovat 89S51 a podobně v Cčku, tak na to rychle zapomeň. to je jako zabíjet vrabce atomovkou.
Jak řikal, x51 neni dělaný pro C. Jestli seš línej se těch 35 instrukcí naučit nazapměť, tak dělej C. Já se ty instrukce naučil během měsíce. TOlik jich zas neni, a navíc se někerý moc často nepoužívaj.

no tak ja teda zustanu u toho asm kdyz uz ho jaks taks ovladam dle svych potřeb 8)

Cse hodí spíš pro AVR, jejichž architektura je na C dělaná. Ale C ani pro AVR neuznávám. C leda pro 32b procesůrky, pro 8bity se to většinou nevyplácí.

no jo no jo kliid stačilo :smiley:

Nezkusil bys někdy AVR? Pokud máš nějaký slušný znaloti z x51, neni problém se přeorientovat na AVR. Doporučuju taky ASM pro ty AVRka. Neni to o moc složitější. Já se AVR momentálně tak nějak učím, když je čas :slight_smile:
Hlavně potřebuju koupit mega32, budu dělat … noo… neprozradim, bude překvápko, jestli se ta blbovina povede :slight_smile: Tebe by to moholo zajímat. Z tvého podpisu jsem pochopil, že jsi taky bastlíř “pro zábavu” :slight_smile:
Tak ahoj zejtra, já jdu spát :slight_smile:

no já tu mám kdesi mezi integráči hozenou atitinu2313 no ale porgramovat jsem ji zatim nezkoušel protože nemám programátor a ten co jsem zkoušel nějak nevungoval takže jsem to odložil na jindy. jo bastlim pro zabavu a hlavně protože mě baví robotika a takoe blbosti(viz muj web)…pak se pochlub na čem děláš;-)

tiny2313… kdybys chtel prejit na avr a jit rovnou do C, urcite te v tom nenechame :wink: (aspon ja ne, ale pro takove potreby bys samo potreboval jiny vlakno :wink: ) Ale nemysli, ze kdybys neco psal v C, ze asm vubec nepotrebujes… To zalezi na aplikaci! Kdyz potrebujes neco presne casovat, tak se asm nevyhnes…
Nevim co mas za programator, ale jesli umi ISP, je pravdepodobny, ze ji to bude umet naprogramovat :wink:

programator mám PROG51-USB ze stránek winide51.wz.cz/downloads/51/prog51_usb.pdf no a attiny to neumí jestli jsem to dobře pochopil

orgramátor na LPT rulezzz.
Jako AVR pro začátek bych spíš doporučoval mega8, 16 nebo 32. Tu tiny ne.
Programátor používám ten co je u mě na webu, tj tenhle:
jan16.czela.net/index.php?id=19&n=jak-naprogramovat-mikrokontroler-rady-89s-isp

Ten software co je u toho, je výhradně určený pro programování x51. Mám jinou verzi toho samého prográmku, která je ale pro AVR.
Na AVR ale spíš používám PonyProg. Je to jak kdy. Je to spolehlivý, a naprogramuje se s tim opravdu lecos. Jen to chce mít LPT port.

SAmozřejmě je pravda, že v C se bez ASM neobejdeš, ale lepší je naučit se njeprve ASM, a pak C, abys pochopil (lépe) jak to Cčko n ASM běhá. Potom totiž když tam budeš chtít dávat vkládaný asm, tak třeba ani nebudeš vědět, čím a jak nahradit prostou smyčku (do)while, for a podobně.

Programujem ATmega8/168/32/644P cca 3 roky. Rozne aplikacie do priemyslu, plno casovani, komunikacii SPI, I2C, hw UART, sw UART, obsluha klavesnic, displayov aj dost rychle veci, meranie teplot, regulacne slucky, archivy do velkokapacitnych zariadeni.
O asembler som ani nahodou nezavadil - nebolo preco. Vsetko v GCC (WINAVR). Vravel som si , ze raz mozno, ale fakt nie je najmensi dovod nieco robit na AVR v asm. Na tie casovania co sa tu tak casto spominaju ako ze je na ne skvely ASM, treba pouzit casovace a udalosti spracovavat pod prerusenim. Sebelepsie casovanie v ASM rychlo rozhodi komunikacia cez prerusenie, alebo presne casove spracovanie AD vstupu pre odfiltrovanie 50/100Hz brumu. RAMky kopec(1/2/4kB), pri dobrom rozvrhnuti aplikacie som nenarazil na problem s pamatou.

Mam kolegov, ktori z historickych dovodov stale pracuju na x51, ako napr 89C4051, 89C52, 89C55, nejaky DALLAS a tak podobne. Na asm nesiahli zhruba od roku 1996. A to komunikuju s citackami kariet, casuju 1-wire komunikaciu, displaye, tlacitka, archivy, skratka vsetko mozne do priemyslu a komercnej sfery. Podla ich slov, jedine C - a to robia na nejakom Kiely z roku 1-2-3. K absolutnej spokojnosti.

Casto sa tu vyzdvihuje znalost ASM - komunita PIC (16Fxxx) tazko moze mat s niecim inym dobre skusenosti - ako nevyhnutna pre dobre pochopenie cinnosti procesora. Tuto dogmu povazujem za podobnu ako tu, ze zem je placata. To absolutne nie je pravda. Pre dobre poznanie procesora treba vediet, ako a kedy nastavit pracovne registre a kedy co ktory bit v registry znamena. To je od instrukcneho suboru uplne nezavisle. Nemusim poznam ako sa mnemotechnicky nazyva ASM instrukcia, ktora nastavi bit v registri pre obzivenie WDT. O to sa postara prekladac. Znalost ASM urcite nie je na skodu, ale ani nahodou nie je nevyhnutna pre plne vyuzitie procesora.

Prave pre ten postrach z predlzenia trvania programu ak je tento pisany v C miesto v ASM ma viedol k tomu, ze v kazdej mojej aplikacii mam kod venovany meraniu dlzky trvania jednotlivych usekov s presnostou na cca 4,34us (u mna cca 64 instrukcne kvantum). Okrem toho si meriam “cas vrtania sa v nose” procesora, ked nema do coho pichnut. Meriam plavajuci priemer a maximum tohto casu. Prakticke vysledky ukazuju vyuzitie procesora zhruba na 8-40%(velmi husta komunikacia 115200Bd,archivacia vyuzivajuca SPI 1MbPS a zber udajov z I2C AD 25kbPS). Nemam preto dovod skusat nieco v ASM. Netvrdim, ze ASM je zly, mozno pre niekoho ako konicek… :slight_smile:

Ale videl som aj nie dobre napisane programy, ked sa pri komunikacii cakalo v slucke na ukoncenie odvysielania/prijatia dalsieho bajtu v komunikacnom protokole. Ale takej prasarni ani 100 ASM nepomoze. Aplikacia musi byt co najviac “vzdusna”, aby jednotlive celky necakali na mieste na vysledky inych celkov a nebrzdili tak cely procesor. Je potom jedno, ci su napisane v ASM, alebo v C. Ak nieco trva 120us a ma sa spustit kazdych 500us, nebudem to davat do slucky s kodom, ktory trva 4.2ms, ale aplikaciu rozvrhnem inym sposobom. Tu principialny rozdiel medzi C a ASM nieje, lebo ak by aj tie casy boli v ASM tretinove, potom mam situaciu 40us a 1.4ms a to takisto do 500us nevmestim.

Aby moj prispevok nevyznel ako zatracovanie ASM. Vobec nie. Su aplikacie, kde ten ASM zmysel ma, ako napr. v realnom case realizovana FFT pri nejakom filtrovani, vektorovom riadeni strojov atd. kde ide o kazdu us. No mp3 prehravac asi na x51 (a ani PIC, ci AVR 8bit) zmysel robit nema. Na 95% beznych aplikacii je C s rychlostou uplne s prehladom.

Jan16 pisal, ze C na 8bit podla neho velky zmysel nema. Musim mu oponovat, C-cko na 8bit velky zmysel ma. Len sa netreba sustredit na procesory s 2kB kodovou pamatou, 36-128B RAM, 2 urovnovym zasobnikom a neskutocne napaditym strankovanim programovej pamate. Tam nema pomaly zmysel ani ten ASM :slight_smile:

Programy v C su v textovej forme kratsie a prehladnejsie. C-cko umoznuje abstraktnejsie (niekedy az kubisticky) nahliadat na problem a venovat sa jemu a nie tomu, ako porovnam tento word s tamtym floatom, na ktory mi ukazuje ukazatel do pola ukazatelov v ASM.
C-cko uz pri preklade strazi kopec veci o ktore sa programator nemusi starat, iba je upozorneny, ze toto alebo tamto je bud uplna blbost, alebo je to minimlane podozrive. C-ckove zdrojaky algoritmov (nie ovladanie periferii) su lahko prenositelne medzi roznymi platformami, atd. atd. A to vysledny program nemusi mat 1.5MB kodu. Aj tych 10-20kB je v C pre zaciatocnika napisanych omnoho rychlejsie a prehladnejsie ako v ASM.

Stari bardi maju samozrejme svoje makra a include subory a vsetky tie nastroje, ktore si za mnoho rokov prace spravili, upravili a odladili. Preto sa im v ASM bude programovat urcite rychlejsie, ako uplnemu zaciatocnikovi v C. Ale tento ich svojou produktivitou dobehne a predbehne omnoho rychlejsie ako sa nazdaju.

A na zaver. Aj v C sa clovek moze dobre zamotat a zaprasit a chce to vela studia a prebdenych noci. Tak ako i v ASM. Nic nie je samospasitelne. fifty-fifty.

P.S. Nechcel som apriori hanit 16Fxx, je to dieta svojej doby a volakedy v roku 1993 znamenal velky prielom v technologii, co sme i my vo firme vo velkom uspesne vyuzivali. No co bolo, bolo a dnes by som kazdeho noveho adepta pre pracu s jednocipmi od tejto vetvy urcite odhovaral, lebo su to objekttivne horsie a drahsie procesory ako ine 8bity na trhu. Ak sa mylim, opravte ma, ale na konkretnych prikladoch prosim. Ja len uvediem

16F74 [8kB Flash, 192B RAM, 8b AD, 5MIPS] 157,-Czk
AT89C51RD2 [64kB Flash, 2kB RAM, bez AD, 3.33MIPS] 99,-Czk
ATmega32 [32kB,2kB RAM, 10b AD, 8-16MIPS] 82,-Czk
]To uz radsej ta x51. :slight_smile:

“z historickych dovodov stale pracuju na x51, ako napr 89C4051, 89C52, 89C55”
To uz si zasel daleko. Znám člověka, kterej pracuje na x51, a hradlových polích - do mobilních telefonů, a bere za to neskutečný peníze. Bydlí kus od Prahy, a do práce jezdí do Německa. Doma je akorát nna víkendy.
Nevim co je na x51 historického, možná to, že byly “vymyšleny” před mnoha lety. Dnešní x51 jsou o mnoho vylepšené, a nedávno (no, možná to je už dýl - řešilo se to na elwebu) se mi dostal do ruky kousek, který má instrukci na takt, a do 80MHz. Měl 1MB FLASH, 256kB SRAM. Víc si nepamatuju. Jen to že byl v pouzdru TQFP :slight_smile:

“Casto sa tu vyzdvihuje znalost ASM” - picátory sem nepleť, ty totiž v ničem jinym dělat nemůžou, protože by musely platit za C kompiler, my buĎme rádi, a oslavujme ATMEL!

Netvrdím, že C je horší než ASM, s programování mám již nějakých těch pár let zkušeností, a vím dobře co to obnáší. Pro mě by nebyl problém dělat v C, ale nebude z toho takovej zážitek, jako při programování v ASM. PRogramy dokážu navrhovat tak, že ve většině případů je v hlavní smyčce akorát nekonečný cyklus, všecko se dělá v přerušení. Není to problém, jen používat hlavu.
Asi takto: Prase, které neumí moc v ASM, ta mu Cčko nepomůže, naopak, bude to daleko horší.
Občas ty zdrojáky k procíkům, co vidím (ASM i C; x51, AVR občas i pic), je mi z nich na blití. Téměř nikomu neřikají nic zpožĎoací cykly přes djnz/brne a podobně. Místo toho tam dají nesmyslně do cyklu cosi, a “odhadem” odhadnou dobu trvání smyčky :unamused:
TO saméé v C. Jako čekací smyčka je použito for od 0 do 100000 a pdobně. Kdy ve smyčce není vůbec nic. Jen to běhá dokola na místě. :unamused:
Pokud někdo neumí programovat, tak je opravdu jedno jestli C, nebo ASM.
ZAčátečníkovi bych al e doporučoval začít s ASM, pochopit základy, a pak přejít výš. Opačně, to jde dost těžko. Ono jde také o to, že programátor, musí umět dobře myslet “programátorsky”, tj dobře umět používat matematiku, logiku, a podobné velice důležité věci.

To jsou ty picy opravdu tak drahé?
ten 16F74… omg. To i 89S51, která stojí asi 40CZK, je o mnoho lepší.

Jan16: na stránkách máš sem tam něco zajimaveho ale ten LPT led efekt už je ohraný to má snad každej druhej:-D jinak ten propgramator na lpt jsem myslím nějaky takový dělal ale nefrčelo to ale mužu to zkusit znovu, canon25 konektrou doma pár mám a draty s odporama nebudou problem;-) o vikendu zkusim něco spáchat když bude nalada

sem tam něco… tos mi to teda pochválil. Víš, kolik je s tim sraní? Když sem na všecko sám, a nikdo s ničim nepomůže? Navc web běží cca rok, s tim že před rokem byl spuštěn, a před 6ti měsíci bylo započato pravidelné aktualizování, takže občas je co číst.
Je mi jedno, co na ten LPT LED efekt říkáš, nemám ho rád, a proto jsem ho zrecenzoval po svém. Dobrá ptákovina, připojovat LED přímo, a bez odporu.

V anketě vítězí kontroléry, že bych tam měl spíš přidávat něco o AVR x51 a podobně? (Takovýh hračiček s kontroléry jsem vymyslel hodně… měřič postřehu, stopky, hodiny, čítač průchodů dveřmi, kodový zámek, LCD reklamní panel, hrátky s HDD a CDROM, a další blboviny. Taky už jeden 89S52 seděl na robotovi z lega :slight_smile:

btw ty jsi hlasoval v anketě pro zesilovače?? Nejmenuješ se náhodou “JOlle” ??

Diskuzi o aurelech jsem přesunul sem: forum.mcontrollers.com/viewtopic.php?t=703

“z historickych dovodov stale pracuju na x51, ako napr 89C4051, 89C52, 89C55” …

jen dodám, že na klonech 8051 fungujou starší typy něčho jako výhabek pro trolejbusy snad po celém světě… To samé přestavníky pro tramvaje… Kdežto nové typy už jedou na nových klonech té 8051… :wink:

ne já nehlasoval pro nic jen jsem to tak prolítnul, vim kolik prace je s tim když něco děláš a u toho ještě web atd…já mám taky vem co si píšu sám v html doslova za chodu. mimochodem ten jolle nejsem nehlasoval jsem vubec… víš co by jsi mohl zkusit, napiš program pro 8051 a moduly aurel 433,92mhz , já něco zkoušel a byl z toho seriovej přenos tak po dvou drátech něco jako takovej převodník ale nedalo se to použít:-D