Delal jsem bakalarku: Ovladani robotickeho mechanismu mikropocitacem. Pouzit byl 8051 a roboticka ruka se 4mi krokovymi motorky, ktera prenasela micky z podavace na tocnu. Oponent mi dal otazku, zda je instrukce DJNZ soucasti kazdeho assembleru. Muzete mi poradit?
Najit o tom neco blizsiho na netu je potrat. Moc Vam dekuju za jakoukoliv pomoc ci radu. Jsem na komercni elektrotechnice, abych se tomuhle vyhnul a ted jsem si takhle nato... nadelal do bot:)) Ale zas alespon to bylo zabavnejsi, nez psat bakalarku o necem nepraktickym, co nic nedela a jen bych to opisoval z knizek...
Jentak dalsi otazky, kdyby mel nekdo nejakou zajimavost k nim:) :
1) Proc jste nepouzil programovaci jazyk C pro snazsi vyvoj? Navic existuji OpenSourcove prekladace, takze ani cena neni prekazkou. (pouzil jsem As, protoze v te laboratori, kde jsem to delal byl jediny k dispozici sakra:) )
2)Pokud je nejvetsi rozbehova frekvence motoru 450Hz, je mozne je pri pohybu budit rychleji?
3) Jakym zpusobem je urcena poloha micku? (je na tvrdo. Proste, kdyz to pujdu testovat ted, tak musim polozit ten podavac presne tam, kam ruka sahne a odkladaci misto tam, kam ho ruka polozi:) )
Diky za jakoukoliv reakci...
Fórum › Assembler
Assembler bakalarka: Je DJNZ soucast kazdeho assembleru?
DJNZ je věcí assembleru pro 8051, ale je to tak šikovná instrukce, že se v různých modifikacích dostala do ostatních platforem. Něco podobného je v AVR assembleru (i když je to RISC), seznam instrukcí bývá v každém datasheetu od Atmelu, u PIC si nejsem jistý.
ad 1) Překladače jazyka C obvykle nedokážou dobře optimalizovat kód pro mikropočítače. Nejčastější závadou bývá velikost výsledného kódu nebo jeho rychlost. Assembler je v tomto ohledu nenahraditelný. Každopádně se dá operovat s tzv. "srdeční záležitostí", já osobně bych jednočip taky programoval radši v ASM.
ad 2) s krokovými motory jsem nikdy nepracoval, takže nevím. Tipuju, že by se na vyšší frekvenci nechytil.
ad 3) to budeš muset taky sám
To jestli je DJNZ obsaženo v každném assembleru se myslím ovdvíjí od příslušné instrukční sady daného procesoru ne ?
Krokové motory budeme dělat příští rok, docela se na to těším, zas bude "hračičkování" :D
3)No, aby jsi mohl určit polohu míčku, potřeboval by jsi nějaký druh senzorů, které by ho nejprve museli detekovat ne?
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.
Já bych oponentovi odpověděl: Instrukce DJNZ součástí každého assembleru určitě není. Např. v mikroprocesorech AVR se v assembleru s DJNZ nesetkáte. A pokud jste myslel jen mikroprocesory architektury x51, tak tam to nelze přesně říci. Teoreticky by měla být instrukce DJNZ u všech takových mikroprocesorů, ale výrobců těchto obvodů je tolik, že je klidně možné, že některý zredukoval instrukční sadu tak, že instrukci DJNZ neobsahuje.
1) Zdali by bylo použití C jednodužší je relativní a záleží na tom, jak dobře ovládáš assembler a jak dobře C. Takže jsi assembler zvolil proto, protože je to pro tebe pohodlnější. Taky jsi ho mohl zvolit proto, protože k ovládání krokového motoru potřebuješ "na instrukci" přesné časování, kterého bys v C dosáhl jedině vložením kódu v assembleru, čímž by ti výhody C odpadly. A jak bylo zmíněno výše, překladače nejsou dokonalé a produkují i několikanásobně víc kódu. Záleží, kolik paměti v procesoru zabírá tvůj program, ale jestli je to víc jak třetina, stejný program psaný v C by se ti tam pravděpodobně nevešel, takže by si musel použít procesor s větší pamětí, což by byly náklady navíc.
2) Myslím že ne, ale moc se v krokových motorcích nevyznám, je to jen logický odhad. Kdyžtak vygoogli nebo najdi někde ve skriptech.
3) Je určena programem. Míček musí být umístěn v místě podavače a je odložen na místo odkladače. Poloha podavače a odkladače musí být zachována a jejich případná nová poloha musí být natvrdo nastavena i v programu.
Už je asi pozdě, ale kdybys použil modelářská serva, ušetřil by sis spoustu hodin práce ;-)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
R-stromy a moje bakalarka :-/ — založil Jiri K.
Vykreslování v assembleru — založil maherik
Zaciname v Assembleru — založil trebuk
Quicksort v assembleru — založil myšák