Úloha v assembleru

jiri.tusla

Re:Úloha v assembleru
« Odpověď #30 kdy: 06. 05. 2015, 10:56:58 »
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf mi přímo vyvstává řešení.
Zaměř se zejména na alternativní funkce nožiček P3.2 (kapitola 4.4 Port 3) a pak různá přerušení, kapitola 13. Interrupts.

Někde si najdi, jak je to s ošetřením zákmitů. Máš dokonce na výběr - udělat to hardwarem nebo uvnitř MCU.
A zkus nastřelit schéma. Pak se nad ním pobavíme dál.

použití přerušení k zjištění stavu tlačítka mi přijde přinejmenším kontroverzní a vzhledem k zadání ("Je třeba programově ošetřit zákmity tlačítka") bych řekl, že hardwarem to nepůjde, zapojení se mi zdá být popsané dostatečně
Nic Ti nebrání se též zúčastnit konstruktivní diskuse. Rád se také něčemu přiučím.
Nicméně jsem tyhle odpovědi chtěl slyšet spíš od Tichouse. Jestli rozumí zadání a například ví, co je přerušení...

ovšem vám brání v účasti v konstruktivní diskusi to, že jste si ji nepřečetl celou, zdá se, že ani úvodní příspěvěk
flame war?

Přečetl jsem nejen tuhle diskuzi, ale i tu druhou, která chce pro změnu svítit LEDkou.
Chtěl jsem klukům pomoci, nějak je navést. Ale už mě to přešlo. Pardon.


v

Re:Úloha v assembleru
« Odpověď #31 kdy: 06. 05. 2015, 11:16:59 »
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf mi přímo vyvstává řešení.
Zaměř se zejména na alternativní funkce nožiček P3.2 (kapitola 4.4 Port 3) a pak různá přerušení, kapitola 13. Interrupts.

Někde si najdi, jak je to s ošetřením zákmitů. Máš dokonce na výběr - udělat to hardwarem nebo uvnitř MCU.
A zkus nastřelit schéma. Pak se nad ním pobavíme dál.

použití přerušení k zjištění stavu tlačítka mi přijde přinejmenším kontroverzní a vzhledem k zadání ("Je třeba programově ošetřit zákmity tlačítka") bych řekl, že hardwarem to nepůjde, zapojení se mi zdá být popsané dostatečně
Nic Ti nebrání se též zúčastnit konstruktivní diskuse. Rád se také něčemu přiučím.
Nicméně jsem tyhle odpovědi chtěl slyšet spíš od Tichouse. Jestli rozumí zadání a například ví, co je přerušení...

ovšem vám brání v účasti v konstruktivní diskusi to, že jste si ji nepřečetl celou, zdá se, že ani úvodní příspěvěk
flame war?

Přečetl jsem nejen tuhle diskuzi, ale i tu druhou, která chce pro změnu svítit LEDkou.
Chtěl jsem klukům pomoci, nějak je navést. Ale už mě to přešlo. Pardon.

netřeba se urážet, já jsem se zeptal autora jeslit zvládne použít přerušení už včera, podle odpovědi nezvládne a hrdwarové ošetření zákmitů zapovídá zadání

jiri.tusla

Re:Úloha v assembleru
« Odpověď #32 kdy: 06. 05. 2015, 11:26:18 »
Hm, tak s tímhle fórem končím.

Pane Krčmář, napsal jsem teď jsa přihlášen docela dlouhou odpověď.
"Poslat" a hle, přístup odepřen. A text se mi ztratil.

Ivan

OT: Re:Úloha v assembleru
« Odpověď #33 kdy: 06. 05. 2015, 11:26:36 »
Ale tohle neni moje zaměření , tohle je vedlejsi predmet , proto to moc neumim , dal v praxi se tomu venovat nebudu :)
Wow, mě tedy udivuje to přesvědčení některých lidí, že se něčemu nikdy nebudou věnovat a proto se to přeci nebudou učit. Jaké uplatnění asi tak může najít člověk neschopný nebo neochotný naučit se novou věc mimo "jeho" obor?

JJ, kdybyste jen vedeli jak moc si ted nadavam, ze jsem pres 18ti lety nedaval vetsi pozor na MFF na prednaskach z Linearniho programovani. A Linearni algebra? Na tu jsem vylozene sr*l. Takovej jsem vul.

v

Re:Úloha v assembleru
« Odpověď #34 kdy: 06. 05. 2015, 11:31:03 »
Hm, tak s tímhle fórem končím.

Pane Krčmář, napsal jsem teď jsa přihlášen docela dlouhou odpověď.
"Poslat" a hle, přístup odepřen. A text se mi ztratil.

nenechte se tak snadno odradit, mi se tady občas stane to samé, řeším to tak, že si vždy před odesláním text odpovědi "zálohuju" do schránky


Lol Phirae

Re:Úloha v assembleru
« Odpověď #35 kdy: 06. 05. 2015, 11:57:24 »
Hm, tak s tímhle fórem končím.

Pane Krčmář, napsal jsem teď jsa přihlášen docela dlouhou odpověď.
"Poslat" a hle, přístup odepřen. A text se mi ztratil.

nenechte se tak snadno odradit, mi se tady občas stane to samé, řeším to tak, že si vždy před odesláním text odpovědi "zálohuju" do schránky

To ale jaksi není řešení, že. Tohle fórum je příšerná sračka, na Lupě ještě "vylepšená" o wannabe "WYSIWYG" mód, který nejde vypnout, je úděsně rozbitý a nikoho ho taky nezajímá. Stejně tak je "řeší" již léta ten geniální "antispam" studentíků ze Žižkova v diskusích pod články tím, že nasraní lidé místo komentáře postují odkazy na pastebin.

HUFU

Re:Úloha v assembleru
« Odpověď #36 kdy: 06. 05. 2015, 13:02:52 »
Za 1. Nechodim na VŠ ale na stredni
A za 2. Napsal jsem sem o radu a ne o prispevky typu jako jsi napsal ty

Tak to se mi dost ulevilo. To mas jeste mozna sanci aspon porozumet psanemu textu a dostat treba i nejakou radu.
Takze uz mas nakreslene schema? Uz mas napsanych par radek programu? Dela to neco? Pokud ne, co presne nechapes? Uvedom si, ze tohle neni zadna veda. Je to jen o cteni dokumentace a zapisech hodnot na spravna mista podle ni. Dokud nedovalis neco konkretniho, budes cist stale dokola jen podobne blaboly.

j

Re:Úloha v assembleru
« Odpověď #37 kdy: 06. 05. 2015, 18:44:54 »
Todle je seminární práce? No potěš koště ... by mne zajímalo co to sakra leze na IT VŠ

Osoba, která tohle zvládne bez cizí pomoci, je naopak velmi vhodná pro práci v IT. Musela nastudovat dokumentaci k "počítači", naučit se programovací jazyk počítače v tomto případě assembler, naprogramovat úlohu a fyzicky vyrobit funkční aplikaci počítače. Úroveň úlohy odpovídá věku. Troufám si tvrdit, že významná část současných absolventů VŠ IT tohle nezvládne a při obsluze přerušení se rozbrečí.

Hmm ... smutny, ale nezbyva nez souhlasit. Podobnyma ptakovinama sme se "za me" bavili na ZS (programovali sme 8mibity, a  protoze to umelo basic, a ten byl pomalej, tak velmi brzo v asm). Dokonce sme delali takovy silenosti, se sme treba meli 2kB EPRomku, vytiskli sme si jeji obsah (hexa) a prevadeli sme to rucne do asm, aby sme vykoumali, jak to funguje a mohli si to upravit.



použití přerušení k zjištění stavu tlačítka mi přijde přinejmenším kontroverzní a vzhledem k zadání ("Je třeba programově ošetřit zákmity tlačítka") bych řekl, že hardwarem to nepůjde, zapojení se mi zdá být popsané dostatečně

Proc? Na impuls zkontrolujes/resetujes counter a zavolas/nezavolas obsluhu. Potrebujes k tomu samo definovany hodiny a dokumentaci k tomu spinaci. Ale osobne mi prijde uchylny tohle resit v SW.


To ale jaksi není řešení, že. Tohle fórum je příšerná sračka, na Lupě ještě "vylepšená" o wannabe "WYSIWYG" mód, který nejde vypnout, je úděsně rozbitý a nikoho ho taky nezajímá. Stejně tak je "řeší" již léta ten geniální "antispam" studentíků ze Žižkova v diskusích pod články tím, že nasraní lidé místo komentáře postují odkazy na pastebin.

Co se ti nezda ... ;D ... vypni si js, a zadnej problem.

v

Re:Úloha v assembleru
« Odpověď #38 kdy: 06. 05. 2015, 19:07:05 »
Proc? Na impuls zkontrolujes/resetujes counter a zavolas/nezavolas obsluhu. Potrebujes k tomu samo definovany hodiny a dokumentaci k tomu spinaci. Ale osobne mi prijde uchylny tohle resit v SW.

nepsal jsem, že to nejde, psal jsem, že to považuju za kontroverzní a ze dvou důvodů: jednoho s obecnou platností a jednoho s přihlédnutím k zadání

1) tlačítko na přerušení způsobí "mnoho" (kdo ví kolik a po jak dlouhou dobu) přerušení, všechny až na to první musí být ignorovány, procesor tedy bude zbytečně obsluhovat přerušení (to může být někde i velmi drahé), místo aby dělal něco užitečného

2) podle vyjádření tazatele je jednoduchost řešení více než žádoucí a tahle úloha prostě jde udělat bez periferií s pomocí zpožďovacích smyček, bez konfigurace a obsluhy přerušení od tlačítka, nastavování čítače pro časovou základnu, ošetření přetečení časové značky atd.

tichous

Re:Úloha v assembleru
« Odpověď #39 kdy: 06. 05. 2015, 20:56:09 »
přesně tak :)

j

Re:Úloha v assembleru
« Odpověď #40 kdy: 06. 05. 2015, 23:15:57 »

1) tlačítko na přerušení způsobí "mnoho" (kdo ví kolik a po jak dlouhou dobu)

Prave to mnoho a kdovi kolik bude v ty dokumentaci k tomu tlacitku. Kupodivu je to zcela beznej udaj. Bezne tam mas treba ze generuje do 20 zakmitu a ze to trva ... 20ms treba (vetsinou tam bejva i nejakej graf). Prave takovyhle tlacitka se na to pouzivaj, protoze maj definovany parametry.

Ale jak sem rek uz driv tohle resit SW je kravina, kdyz si o korunu draz koupim tlacitko, ktery to ma vyreseny HW

A presne tyhle skolni ulohy jen dokumentujou tragickej stav naseho skolstvi a toho, co z nej pak vyleze. Protoze jak se do lesa vola (= jaky hovadiny se resej) tak se z lesa ozyva (takovy kktiny pak doticni v praxi vyrabej). Tudiz bych se vubec nedivil, kdyby mi nekdo s podobnym "vzdelanim" navrhnul, ze tu zarovku ( o pardon, tepelnou kouli) bude rozsvecet pomoci procesoru a potreboval k tomu GB ram ...

###################
Neco z praxe jup? Aby byla predstava ... (a ne, neprehanim ani o pid). Mejme databazi, v ni mejme milion zaznamu. Sem tam se nektery z nich zmeni. U kazdeho zaznamu je datetime posledni zmeny. Zadani je pomerne trivialni ... zajistit synchronizaci dat, pokud mozno realtime.

Reseni? Ale jo, ctete dobre ... select * from. Kazdou minutu.

Bonus ... prenasi se to pres soap ... kazdy jeden select vygeneruje 80MB XML ...WOW. A NEPRIJDE JIM TO DIVNY!

v

Re:Úloha v assembleru
« Odpověď #41 kdy: 06. 05. 2015, 23:33:19 »

1) tlačítko na přerušení způsobí "mnoho" (kdo ví kolik a po jak dlouhou dobu)

Prave to mnoho a kdovi kolik bude v ty dokumentaci k tomu tlacitku. Kupodivu je to zcela beznej udaj. Bezne tam mas treba ze generuje do 20 zakmitu a ze to trva ... 20ms treba (vetsinou tam bejva i nejakej graf). Prave takovyhle tlacitka se na to pouzivaj, protoze maj definovany parametry.

Ale jak sem rek uz driv tohle resit SW je kravina, kdyz si o korunu draz koupim tlacitko, ktery to ma vyreseny HW

A presne tyhle skolni ulohy jen dokumentujou tragickej stav naseho skolstvi a toho, co z nej pak vyleze. Protoze jak se do lesa vola (= jaky hovadiny se resej) tak se z lesa ozyva (takovy kktiny pak doticni v praxi vyrabej). Tudiz bych se vubec nedivil, kdyby mi nekdo s podobnym "vzdelanim" navrhnul, ze tu zarovku ( o pardon, tepelnou kouli) bude rozsvecet pomoci procesoru a potreboval k tomu GB ram ...

###################
Neco z praxe jup? Aby byla predstava ... (a ne, neprehanim ani o pid). Mejme databazi, v ni mejme milion zaznamu. Sem tam se nektery z nich zmeni. U kazdeho zaznamu je datetime posledni zmeny. Zadani je pomerne trivialni ... zajistit synchronizaci dat, pokud mozno realtime.

Reseni? Ale jo, ctete dobre ... select * from. Kazdou minutu.

Bonus ... prenasi se to pres soap ... kazdy jeden select vygeneruje 80MB XML ...WOW. A NEPRIJDE JIM TO DIVNY!

no napsal jste toho hodně, ale krapet mimo téma, pokud je v zadání "programově ošetřit zákmity tlačítka při jeho sepnutí" tak to asi výběrem tlačítka (to jest hardwarově) řešit nepůjde

atarist

Re:Úloha v assembleru
« Odpověď #42 kdy: 06. 05. 2015, 23:36:15 »

Neco z praxe jup? Aby byla predstava ... (a ne, neprehanim ani o pid). Mejme databazi, v ni mejme milion zaznamu. Sem tam se nektery z nich zmeni. U kazdeho zaznamu je datetime posledni zmeny. Zadani je pomerne trivialni ... zajistit synchronizaci dat, pokud mozno realtime.

Reseni? Ale jo, ctete dobre ... select * from. Kazdou minutu.

Bonus ... prenasi se to pres soap ... kazdy jeden select vygeneruje 80MB XML ...WOW. A NEPRIJDE JIM TO DIVNY!

Jako chápu to dobře, že ten select se podívá na všechny novější záznamy, než zpracovat minule, tedy nějaký where timestamp blablabla?

Pavel Tišnovský

Re:Úloha v assembleru
« Odpověď #43 kdy: 06. 05. 2015, 23:51:24 »
přesně tak :)

Tak to v rámci cvičení můžeš zkusit udělat i obráceně - v přerušovací rutině ti poběží generování toho signálu, a to pořád (budeš posílat sekvenci 0-flag-0-flag), kde flag bude buď 1 (má znít tón) nebo 0. Klidně ten flag dej do Rx, stejně jich moc nepoužiješ :-)

Potom hlavní program:
1) čekej na stisk tlačítka
2) pokud stisknuto, čekej 10 ms (třeba)
3) ok negace flagu
4) if stále stisknuto, čekej na puštěno
5) fajn, takže uživatele konečně začal bolet prst, jdeme na začátek

něco na tento způsob, prostě si chvilku počkej na konec zákmitů. S MCU to není problém, pokud si však uděláš takovou pollovací smyčku na PCčku, tak tě uživatelé zabijou :-)

gamer

Re:Úloha v assembleru
« Odpověď #44 kdy: 07. 05. 2015, 06:20:25 »
Ale jak sem rek uz driv tohle resit SW je kravina, kdyz si o korunu draz koupim tlacitko, ktery to ma vyreseny HW
V praxi to funguje úplně jinak, než si představuješ. O korunu dražší tlačítko nikdo nekoupí, protože koruna na milionu výrobků znamená nové auto pro finančního ředitele. I technicky je to špatné řešení, takové tlačítko bude složitější a poruchovější. V SW to musíš ošetřit tak jako tak, protože výrobek půjde na EMC, kde se to snaží zarušit mnoha různými způsoby (VF polem, napěťovými špičkami do napájení...), takže přerušením nechceš řešit pokud možno vůbec nic, co přichází z vnějšku MCU, protože přerušení se takovým bordelem snadno zaruší. Technicky správné řešení je číst vstupy synchrnonně v definovaných časech s dalším SW odfiltrováním bordelu. Když čteš vstup každých 10 ms (a trvá to dejme tomu mikrosekundu), tak snížíš pradvěpodobnost, že přečteš bordel, oproti přerušení 10000x (pokud přerušení reaguje na mikrosekundový puls). S dalším filtrováním synchronně čtěných vstupů vyrobíš o mnoho řádů robustnější systém oproti přerušení.