Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: tichous 05. 05. 2015, 20:39:41

Název: Úloha v assembleru
Přispěvatel: tichous 05. 05. 2015, 20:39:41
zdravím dostal jsem za úkol v seminární práci napsat program a jazyku assembler a byl bych moc rád za každou radu, protože tohle vůbec nechápu :)
tady je zadání :
Na vstup 2 brány P3 je připojeno tlačítko, na výstup 0 brány P1 je přes spínací tranzistor připojen reproduktorek.
Napište a odlaďte program, který při prvním stisku tlačítka spustí generování tónu o kmitočtu 440 Hz, při dalším stisku generování ukončí atd. Je třeba programově ošetřit zákmity tlačítka při jeho sepnutí:
předem díky moc za pomoc :)
Název: Re:assembler-pomoc
Přispěvatel: hawran diskuse 05. 05. 2015, 20:50:50
 :o
Si děláte kozy, ne?
Název: Re:assembler-pomoc
Přispěvatel: v 05. 05. 2015, 20:51:56
to je vtip? ptám se, bo tohle vlákno http://forum.root.cz/index.php?topic=11143.0
ale řekněme, že není, potom byste v první řadě měl sdělit, na jakém procesoru to má běžet, tipuju MCS51
Název: Re:assembler-pomoc
Přispěvatel: tichous 05. 05. 2015, 20:54:03
mikrořadič AT89S2051 na tomto :)
Název: Re:assembler-pomoc
Přispěvatel: v 05. 05. 2015, 20:55:16
mikrořadič AT89S2051 na tomto :)

a je to teda vtip nebo není?
Název: Re:assembler-pomoc
Přispěvatel: tichous 05. 05. 2015, 20:59:39
není , nemám potřebu si z někoho utahovat na internetu :)
budu vděčný za každou radu.
Název: Re:assembler-pomoc
Přispěvatel: v 05. 05. 2015, 21:04:53
budiž

čemu přesně nerozumíte?
umíte přečíst stav pinu?
nastavit výstupní hodnotu pinu?
naprogramovat zpožďovací smyčku?
nakonfigurovat a zachytit přerušení?
nakonfigurovat časovač?
Název: Re:Úloha v assembleru
Přispěvatel: Petr Krčmář 05. 05. 2015, 21:05:24
Jak už bylo napsáno ve vedlejším vlákně: nikdo tu za vás nebude řešit domácí úkoly. Snažte se sami a pokud vám něco konkrétního nebude jasné, zeptejte se.
Název: Re:Úloha v assembleru
Přispěvatel: tichous 05. 05. 2015, 21:07:16
popravdě ... není toho moc co umím.
kdyby jste mi napsal nějaký postup tak bych to i možná zvládnul. je mi jasné že mi tu nenapíšete celý program to bych po vás chtěl moc .
Název: Re:Úloha v assembleru
Přispěvatel: v 05. 05. 2015, 21:11:03
Jak už bylo napsáno ve vedlejším vlákně: nikdo tu za vás nebude řešit domácí úkoly. Snažte se sami a pokud vám něco konkrétního nebude jasné, zeptejte se.

ne že bych chtěl tazatele moc bránit, ale stane, že je člověk opravdu přetížen a neví ani na co se zeptat

popravdě ... není toho moc co umím.
kdyby jste mi napsal nějaký postup tak bych to i možná zvládnul. je mi jasné že mi tu nenapíšete celý program to bych po vás chtěl moc .

ty mé otázky - o moc víc než na co jsem se zeptal není k realizaci třeba, co z toho umíte?
Název: Re:Úloha v assembleru
Přispěvatel: tichous 05. 05. 2015, 21:14:38
řekněme že první dva body zvládnu :)
Název: Re:Úloha v assembleru
Přispěvatel: v 05. 05. 2015, 21:21:26
tak postněte kód, který přečte stav tlačítka a překlopí ho na stav výstupu spínajícího tranzistor
Název: Re:Úloha v assembleru
Přispěvatel: tichous 05. 05. 2015, 21:27:28
takže odpoved je v tom že vlastně tranzistor se překlápí jen v určitých impulseh, ke kterým dosáhneš tak že si nastavíš čítač na hodnotu 0 a zadaš potřebnou frekvneci
Název: Re:Úloha v assembleru
Přispěvatel: faraon 05. 05. 2015, 21:29:59
kdyby jste mi napsal nějaký postup tak bych to i možná zvládnul. je mi jasné že mi tu nenapíšete celý program to bych po vás chtěl moc .
Postup jsem ti napsal, ještě sis ho nepřečetl!
Název: Re:Úloha v assembleru
Přispěvatel: tichous 05. 05. 2015, 21:35:54
prosim ? vy jste mi sem napsal ted první příspěvek....
Název: Re:Úloha v assembleru
Přispěvatel: Pan♂P​r​d​e​lka☺ 05. 05. 2015, 21:41:44
Učitel rozdal žákům 20 různých zadání, aby od sebe nemohli opisovat.
Už tu máme dva :-D tak ještě těch zbývajících 18 :-D

2 Tichous: a hele, mě to baví, jen nevím, jak to dostat do toho čipu, protože programovat umím, ale bastlit úplně ne.
Těžko to můžu odzkoušet, takže doval dokumentaci a všechno, co máš, ať je čeho se chytit.
Název: Re:Úloha v assembleru
Přispěvatel: Tichous 05. 05. 2015, 21:55:36
Na vstup 2 brány P3 je připojeno tlačítko, na výstup 0 brány P1 je přes spínací tranzistor připojen reproduktorek.
Napište a odlaďte program, který při prvním stisku tlačítka spustí generování tónu o kmitočtu 440 Hz, při dalším stisku generování ukončí atd. Je třeba programově ošetřit zákmity tlačítka při jeho sepnutí:
                                     
K realizaci použijte mikrořadič AT89S2051.
                                               

Schéma zapojení (včetně napájecího zdroje):

 
 
Popis zapojení, výpočty:

 
 
Seznam použitých součástek:

 
 
Vývojový diagram programu:

 
 
Výpis zdrojového textu programu s komentářem:

 
 
Popis programu, výpočty:

 
 
Závěr:
Název: Re:Úloha v assembleru
Přispěvatel: čumil 05. 05. 2015, 22:11:45
Todle je seminární práce? No potěš koště ... by mne zajímalo co to sakra leze na IT VŠ ... No jo no, umí to šukat s matematikou, ale informatika je na ně moc divoká kočka ... Takhle triviální příklad za tebe nikdo nebude dělat. Přečti si dokumentaci a udělej to, logika je triviální. Co chceš dělat v praxi? Taky na fórum napsat, "Potřebuju program kterej najde nejkratší cestu z bodu A do bodu B v grafu, data tahá z databáze. Prosil bych i odzkoušet na severním pólu." ? Fakt, já sem z těch dnešních "programátorů" mimo.
Název: Re:Úloha v assembleru
Přispěvatel: hawran diskuse 05. 05. 2015, 22:13:57
Na vstup 2 brány P3 je připojeno tlačítko, na výstup 0 brány P1 je přes spínací tranzistor připojen reproduktorek.
Napište a odlaďte program, který při prvním stisku tlačítka spustí generování tónu o kmitočtu 440 Hz, při dalším stisku generování ukončí atd. Je třeba ...
...
Popis programu, výpočty:

Závěr:

No ty vole ...
Název: Re:Úloha v assembleru
Přispěvatel: Tichous 05. 05. 2015, 22:19:03
Ale tohle neni moje zaměření , tohle je vedlejsi predmet , proto to moc neumim , dal v praxi se tomu venovat nebudu :)
Název: Re:Úloha v assembleru
Přispěvatel: JardaP . 05. 05. 2015, 22:29:46
Desim se budoucich inzenyru. Budoucnost vidim ve stylu postapokalyptickych filmu. Uz ted kolikrat neco rozebiram a rikam si, ktery #@!'% to vymyslel, ale do budoucna k tomu asi budu muset prikusovat Prozac.
Název: Re:Úloha v assembleru
Přispěvatel: HUFU 05. 05. 2015, 22:39:24
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? Bude někde v kanclu dělat cvičenou opici do vyhoření, protože je přeci pod jeho úroveň nějak se rozvíjet. Je mi z podobných vysokoškoláků na zvracení. Ono to neumí ani se pořádně zeptat a nedokáže to pochopit větu "napiš sem svoje nefunkční řešení a někdo tě popostrčí ke správnému řešení".

Jdi si vzít lopatu a jdi kopat žlaby pro kabely. I kdybys studoval medicínu a tohle byl vedlejšák, nechci se ti dostat pod ruku s tímhle přístupem ke vzdělání. Na VŠ chodíš pro to, aby ses naučil co nejvíc věcí a získal rozhled. Titul bez znalostí je ti k ničemu. A bez jakékoliv píle už tuplem.

Stejně si myslím, že je to nějaký joke, protože takhle hloupí lidé přeci nemůžou studovat :-D
Název: Re:Úloha v assembleru
Přispěvatel: Tichous 05. 05. 2015, 22:46:36
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
Název: Re:Úloha v assembleru
Přispěvatel: faraon 05. 05. 2015, 22:54:46
prosim ? vy jste mi sem napsal ted první příspěvek....
Sem možná ano, ale ty také nežebráš jenom na tomhle webu, žejo :-P

Akorát že tady ti budou nadávat o dost víc, protože tihle lidé dávno zapomněli to, co ty ses ještě ani nenaučil :-D
Název: Re:Úloha v assembleru
Přispěvatel: jiri.tusla 06. 05. 2015, 09:37:40
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf (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.
Název: Re:Úloha v assembleru
Přispěvatel: l 06. 05. 2015, 09:58:59
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čí.
Název: Re:Úloha v assembleru
Přispěvatel: v 06. 05. 2015, 10:13:11
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf (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ě
Název: Re:Úloha v assembleru
Přispěvatel: jiri.tusla 06. 05. 2015, 10:26:37
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf (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í...
Název: Re:Úloha v assembleru
Přispěvatel: v 06. 05. 2015, 10:32:24
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf (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
Název: Re:Úloha v assembleru
Přispěvatel: hawran diskuse 06. 05. 2015, 10:35:07
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čí.

+1
Název: Re:Úloha v assembleru
Přispěvatel: jiri.tusla 06. 05. 2015, 10:56:58
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf (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.
Název: Re:Úloha v assembleru
Přispěvatel: v 06. 05. 2015, 11:16:59
Zkusme to konstruktivně. Kam už ses dostal?
Hledě do datasheetu http://www.atmel.com/Images/doc3390.pdf (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í
Název: Re:Úloha v assembleru
Přispěvatel: jiri.tusla 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.
Název: OT: Re:Úloha v assembleru
Přispěvatel: Ivan 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.
Název: Re:Úloha v assembleru
Přispěvatel: v 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
Název: Re:Úloha v assembleru
Přispěvatel: Lol Phirae 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.
Název: Re:Úloha v assembleru
Přispěvatel: HUFU 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.
Název: Re:Úloha v assembleru
Přispěvatel: j 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.
Název: Re:Úloha v assembleru
Přispěvatel: v 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.
Název: Re:Úloha v assembleru
Přispěvatel: tichous 06. 05. 2015, 20:56:09
přesně tak :)
Název: Re:Úloha v assembleru
Přispěvatel: j 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!
Název: Re:Úloha v assembleru
Přispěvatel: v 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
Název: Re:Úloha v assembleru
Přispěvatel: atarist 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?
Název: Re:Úloha v assembleru
Přispěvatel: Pavel Tišnovský 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 :-)
Název: Re:Úloha v assembleru
Přispěvatel: gamer 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í.
Název: Re:Úloha v assembleru
Přispěvatel: j 07. 05. 2015, 07:29:13
V praxi to funguje presne jak pisu. Protoze nikdo nebude programovat neco, co si muze koupit hotovy. Poruchovost nikoho nezjima, pokud to ma vydrzet, tak maximalne zaruku. A jakykoli kodeni je vzdy radove drazsi. Takze jestli tlacitko stoji korunu, pak kod resici stejnou vec stoji 100Kc. Na kazdej vyrobenej kus.

Pokud me zajima ruseni, potrebuju zcela jinej HW, protoze SW to nikdy nevyresi.


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?

Mas snad vidiny a vidis tam nejakej where ?
Název: Re:Úloha v assembleru
Přispěvatel: gamer 07. 05. 2015, 08:40:49
V praxi to funguje presne jak pisu. Protoze nikdo nebude programovat neco, co si muze koupit hotovy. Poruchovost nikoho nezjima, pokud to ma vydrzet, tak maximalne zaruku. A jakykoli kodeni je vzdy radove drazsi. Takze jestli tlacitko stoji korunu, pak kod resici stejnou vec stoji 100Kc. Na kazdej vyrobenej kus.

Pokud me zajima ruseni, potrebuju zcela jinej HW, protoze SW to nikdy nevyresi.
Zkusenosti z praxe nemas, pochybuju, ze jsi nekdy programoval zarizeni, ktere slo na EMC zkousku. Obhajujes reseni, ktere je technicky i ekonomicky spatne. Prerusenim se v embedded resi jen to, co jinak udelat nelze. Rozhodne ne cteni tlacitek ani standardnich vstupu. Ruseni se musi resit na vsech urovnich, v HW i v SW. A jedna logicka uloha, kdyz vyrabis milionove serie, usetris radeji $10000 na programatorovi nebo $1 na zarizeni? A to nepocitam cenu EMC zkousky, kterou bys napoprve s prerusenim na tlacitku na 99% neprosel.
Název: Re:Úloha v assembleru
Přispěvatel: Pavel Tišnovský 07. 05. 2015, 09:01:01

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?

Mas snad vidiny a vidis tam nejakej where ?

Tak ono je lepší připustit možnost, že jsi zapoměl napsat "where", než že je tvůrce toho SW naprosté prase :-)
Název: Re:Úloha v assembleru
Přispěvatel: Jetset 07. 05. 2015, 09:56:52
Celkem jsem se pobavil ctenim techto komentaru.
Sice neobhajuji tohohle studentika, co by chtel, aby mu nekdo vyresil domaci ukol - pokud nechapes co mas delat, tak co jsi cely rok studoval?
Zamerim se spis na reseni tohoto problemu.
Hardwarove osetrene tlacitko je sice krasna vec (delal jsem takove veci v dobach logickych obvodu bez procesoru), ale v praxi je podstatne lepsi osetrit zakmity ve firmware. Predstav si, ze delas 160ti tlacitkovou klavesnici (shodou okolnosti muj prvni projekt v zamestnani). Nemuzes tam dat 160 prepinacich tlacitek, kazde se dvema hradlama.
Navic, softwarove osetrit zakmity je velmi jednoduche, uz to tady nekdo zminil - periodicky ctes stav a kdyz se zmeni, v pristim testu zkontrolujes, jestli je stale zmeneny a pak teprve zmenu akceptujes. V pripade teto velke klavesnice, co jsem tehdy delal, byly tam 2 bitmapy stavu, delal se xor a and mezi bitmapama a soucasnym stavem klavesnice.
Podobny algoritmus jsem pak pouzil nekolik desitek krat v ruznych zarizenich.
Takze tato uloha je pro studenty velmi dulezita.

Jak bych resil tuhle konkretni ulohu:
Nastavil bych si timer na 880Hz. V kazdem interruptu bych invertoval vystup, pokud by byl nastaveny flag a v kazdem 16tem interruptu bych cetl tlacitko (algoritmem zminenym nahore). Pri stisku tlacitka bych invertnul flag. Hlavni smycka by obsahovala jenom sleep (halt nebo co ma tento processor).
Vyhoda? Naprosto presna frekvence a nemusis pocitat kolik instrukci ma tvuj program ve vsech ruznych vetvich, abys ji dosahl.
Název: Re:Úloha v assembleru
Přispěvatel: Yarda 09. 05. 2015, 10:49:08
http://forum.zive.cz/viewtopic.php?f=922&t=929499

BTW: Zmínil se ten šmudla, do kterého vzdělávacího ústavu občas zavítá?