začiatočník v assembleri

Moderátori: psichac, Moderátori

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 25 Apr 2014, 20:19

To mi je jasné že sa učíš. A veľmi sa páči že sa pýtaš na to čomu nerozumieš. Veľa ľudí používa operaciu << lebo to vidia v programoch ale vôbec jej nerozumejú. Najhoršie je že sa to ani nesnažia pochopiť.
Vlado ti to urobil dobre. Len neviem či je to ten správny postup ak sa to máš naučiť. Takto to síce funguje, ale ten princíp prečo to tak urobil sa ti z toho nedá zbadať.

Podľa mňa, si to na začiatok zbytočne komplikuješ tým prerušením. Na tvojom mieste by som prerušenie zatiaľ nechal tak a snažil by som sa urobiť efekt typu knight rider
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

DJ_Edo
Pokročilý člen
Pokročilý člen
Príspevky: 775
Dátum registrácie: 23 Aug 2013, 16:07
Bydlisko: LV

Re: začiatočník v assembleri

Príspevok od používateľa DJ_Edo » 25 Apr 2014, 20:40

Predsa len sa este spytam k tomuto LDI REG,1<<ISC01
Preco sa vybera ISC01, ked pred << mam dany posun o jedno dolava. Podla tej logiky posuvania ako je pisana napr. v knihe od Matouska by sa malo vybrat ISC10 v MCUCR, lebo je o jedna posunute dolava od ISC01.
Len neviem či je to ten správny postup ak sa to máš naučiť. Takto to síce funguje, ale ten princíp prečo to tak urobil sa ti z toho nedá zbadať.
Nerozumiem...

Este nieco
Tvoja predstava vysielania údaja v prerušení na port je úplne chybná
Preco? Je to principialne zle, riesenie, zly postup? Moze sa stat nieco neocakavaneho napr pri rozsiahlejsom kode, ked by som to takto robil?
0
Nasliněný prst na svorkovnici domovního rozváděče: "Jó, paninko, máte tam ty Voltíky všecky"

wwlado

Re: začiatočník v assembleri

Príspevok od používateľa wwlado » 25 Apr 2014, 21:00

Musel som ti to takto nakreslit.

Program by mal mat tri zakladne casti.
Inicializaciu, kde si nastavis porty a registre, casovace..
Hlavny program (hlavnu slucku, IDLE procesy), cast kodu, ktora sa vykonava, ked procesor nema ic ine na praci.
Obsluha prerusenia.

Ak v hlavnom prohrame nemas ziaden kod, tak pri preruseni nemusis ukladat SREG. Ale ak tam kod mas, tak ti moze nastat takato situacia, ako na obrazku.
V hlavnej slucke je do reg nacitana nula. Potom sa porovna, ci je tam nula. Kedze sa operandy rovnaju, zdvihne sa vlajka Z (pri CP/CPI zhoda, pri aritmetickych funkciach, ze je vysledok nulovy).
Predstav si, ze teraz vyvolas prerusenie. Pripocitam ku Reg 1. Tym vysledok tejto operacie je nenulovy, preto sa zhodi vlajka Z v stavovom registu.
Ukonci sa prerusenie, vratime sa tam, kde sme prestali, ale uz Z je 0.
Preto ak mas hlavny program, musis ulozit SREg pri preruseni.

1<<AEN neznamena ze o jednu od AEN do lava. Ale ze jednotka sa posunie o AEN do lava. Napr AEN je 3, tak 1 sa posunie na treti bit. Teda 0b00001000. Z prava sa pocita 0ty bit, prvy, druhy, treti...

Inac si kludne mozes SREG mozes ulozit aj do R0. Ten svoj. Teda pri preruseni si ulozis SREG do zasobnika, nacitas svoj z R0, vykonas vsetko co potrebujes ulozis SREG do R0, nacitas ho zo zasobnika a Reti.
Prílohy
1398451301076.jpg

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 25 Apr 2014, 21:19

Dobre že sa pýtaš lebo vidím že v tom nemáš jasno ako mnoho ďalších. Takže trochu podrobnejšie:

Kód: Vybrať všetko

; preruseni od sestupne hrany
LDI    REG,1<<ISC01
OUT    MCUCR,REG
V prvom rade sa pozri na to čo vlastne chceš urobiť. Chceš povoliť prerušenie od zostupnej hrany na vstupe INT0.
Teraz je otázka ako. Na to nájdeš odpoveď v datasheete. Tu som vytiahol dve podstatné informácie ako na to.

Obrázok
Tento obrázok hovorí že existuje nejaký IO register so symbolickým menom MCUCR. Skladá sa z ôsmich bitov, ktoré sú tiež označené symbolickými menami (napr. miesto čísla 1 je meno ISC01)

Obrázok
Tento obrázok hovorí ako nastaviť spôsob aktivácie prerušenia pre INT0. V našom prípade chceme zostupnú hranu (falling edge). Teda je treba aby bit ISC01 bol jednotkový.
Teraz je už len otázka ako to urobiť?
Dostať číslo do IO registra sa robí pomocou inštrukcie OUT. Tá potrebuje dva operandy. Prvým je adresa kam zapísať (symbolické meno MCUCR) a druhým je nejaký register (R0 až R31)
Tak je tam definované symbolické meno REG.

Posledná vec je ako dostať do toho REG číslo ktoré bude mať v prvom bite hodnotu 1. To sa dá urobiť veľa spôsobmi. Tu je pár príkladov:

Kód: Vybrať všetko

LDI  REG, 2
LDI  REG, 0x02
LDI  REG, 0b00000010
LDI  REG, 1+1
LDI  REG, 1<<ISC01
LDI  REG, 1<<1
čo robí 1<<ISC01?
To čo si si prečítal. Hodnotu 1 posunie vľavo o ISC01 miest. Koľko je ISC01? ISC01=1 (podľa prvého obrázka)
takže sme sa dostali k výrazu 1<<1
Povedané po slovenky. Posuň hodnotu 1 o jedno miesto doľava. Na toto treba ovládať binárnu sústavu (alebo si to vypočítať na kalkulačke) a výsledok je 2.
Takže tie dve inštrukcie nerobia nič iné než:
1. do REG sa dá hodnota 2
2. do MCUCR sa dá hodnota REG (teda 2)

A je to.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

DJ_Edo
Pokročilý člen
Pokročilý člen
Príspevky: 775
Dátum registrácie: 23 Aug 2013, 16:07
Bydlisko: LV

Re: začiatočník v assembleri

Príspevok od používateľa DJ_Edo » 25 Apr 2014, 21:27

1<<ISC01, aha uz chapem, cize sa neberie hodnota ulozena na pozici kde je ISC01, ale poradove cislo pozicie. A ja som si nevedel predstavit, ze odkial sa to uz dopredu vycita, ked MCUCR som napisal uz potom a ziadnu kladnu hodnotu som donho nenahraval :rolleyes:
0
Nasliněný prst na svorkovnici domovního rozváděče: "Jó, paninko, máte tam ty Voltíky všecky"

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 25 Apr 2014, 21:35

Vidím že si položil ďalšie otázky
Len neviem či je to ten správny postup ak sa to máš naučiť. Takto to síce funguje, ale ten princíp prečo to tak urobil sa ti z toho nedá zbadať.
Nerozumiem...

Myslel som to takto. Vlado ti napísal komplet funkčný program pri ktorom použil všetko čo za veľa rokov sa naučil. Urobil to skvele. Je to funkčné, optimálne. Má to jednu chybu. Nepochopíš z toho ako k tomu došiel. To sú roky jeho skúseností s číslicovou technikou. Ty so to pozrieš. Možno ti to je aj ako tak jasné, ale stačí aby si si mierne zmenil cieľ a si bezradný ako ho dosiahnuť. Musíš sa naučiť sám riešiť problém. Inak sa nikam neposunieš.


Este nieco
Tvoja predstava vysielania údaja v prerušení na port je úplne chybná
Preco? Je to principialne zle, riesenie, zly postup? Moze sa stat nieco neocakavaneho napr pri rozsiahlejsom kode, ked by som to takto robil?[/quote]

Tvoja predstava je chybná z niekoľkých dôvodov.
1. nemáš predstavu ako mať urobený tok programu (to čo ti nakreslil Vlado na obrázok)
2. nemáš predstavu ako synchronizovať tie dva asynchrónne procesy
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

wwlado

Re: začiatočník v assembleri

Príspevok od používateľa wwlado » 25 Apr 2014, 22:14

Peter, ja som sa tiez ucil iba z prikladov... :-) ako teraz Edo

Musim uznat, ze to vies lepsie vysvetlit. Mal by si to vyucovat.

DJ_Edo
Pokročilý člen
Pokročilý člen
Príspevky: 775
Dátum registrácie: 23 Aug 2013, 16:07
Bydlisko: LV

Re: začiatočník v assembleri

Príspevok od používateľa DJ_Edo » 25 Apr 2014, 22:32

2. nemáš predstavu... Budem rad ak mi to trocha priblizis...
Este mam par otazok:
Nevies ako sa AVR studiu4 daju nejak zobrazit registre v binarnom tvare? Da sa to len prepinat medzi dekadickym a hexa, pomohlo by mi to napri pri ROR, ROL by som videl ako sa tie hodnoty presuvaju, alebo nejaky trik. Skusal som aj Atmel studio 6 prave kvoli tejto vymozenosti ale odtial zase vyhodili autostep a spusta sa to dve hodiny a este k tomu je to extremne pomale. Neviem co s tym vymyslali, treti rok to nevedia dat do pouzitelneho stavu.
V datasheetoch som si vsimol, ze v niektorych I/O registroch su niektore bity zafarbene na sivo, co to znamena?
0
Nasliněný prst na svorkovnici domovního rozváděče: "Jó, paninko, máte tam ty Voltíky všecky"

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 25 Apr 2014, 23:27

Vlado:
Aj ja som sa učil analýzou a krokovaním hotových programov. Ale myslím si že to nie je najrýchlejší spôsob ako sa niečo naučiť. Pritom som mal výhodu že som prešiel číslicovkou od hradla po mikroprocesor. Teraz sa do programovania púšťajú ľudia čo neviedia čo je bit, byte, binárna sústava ... (ale to nie je Edov prípad)

Učil som veľa rokov (s mizivou účinnosťou).

Edo:
Nemám chuť písať nejaký obecný pokec o prerušeniach. Je toho plný internet. Ak máš konkrétnu otázku pýtaj sa.
K AVR štúdiu. Ja už moc nesimulujem. Simulátor pre AVR som použil pár krát. Takže nejaké veľké finty neviem. Ako píšeš, registre sa nedajú binarne zobraziť. Ale zato sa tak dajú zobraziť IO registre. Tak si to pošli na nejaký port a tam to máš po bitoch.

Sivá farba bitov v datasheetoch - význam netuším, že by grafické odlíšenie?
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

wwlado

Re: začiatočník v assembleri

Príspevok od používateľa wwlado » 25 Apr 2014, 23:39

Siva farba znamena, ze to nieje popisovane v prave citanom odseku.
Proste je register, ktory ma 2 bity pre jeden citac a 2 bity pre druhy. Tak ten register je popisovany, v obydvoch pripadoch, ale tie bity, ktore sa ho netykaju su sede.

Pisem v linuxe pod geany, takze simulator som neskusal.

Podla mna sa skor naucis v cudziom programe menit premenne a prikazy. Vidiet ako a co sa meni. Ako keby sa to mal niekto ucit. Uz len tym, ze si to skor zapamatas. Ale to je iba moj nazor.
Ved ked vyjde ziak zo skoly, co sa ucil ASM, tak neverim, ze tomu rozumie viac, ako samouk.

O strukture som ti pisal vyssie. Ak niecomu nerozumies pytaj sa.

(Ospravedlnujem sa za gramatiku. Pisem na tablete a stale mi kniznica meni slova. Alebo stlacim zle pismenko, popr. Ho ani nezozerie)
Naposledy upravil/-a wwlado v 26 Apr 2014, 12:21, upravené celkom 1 krát.

DJ_Edo
Pokročilý člen
Pokročilý člen
Príspevky: 775
Dátum registrácie: 23 Aug 2013, 16:07
Bydlisko: LV

Re: začiatočník v assembleri

Príspevok od používateľa DJ_Edo » 26 Apr 2014, 11:49

http://www.wwlado.szm.com/
http://www.plesnik.sk/

Vidim, ze som tu narazil na ochotnych odbornikov :prayer:. Diky chlapi za snahu, postudujem, vyskusam, ozvem sa :D
0
Naposledy upravil/-a DJ_Edo v 26 Apr 2014, 20:59, upravené celkom 3 krát.
Nasliněný prst na svorkovnici domovního rozváděče: "Jó, paninko, máte tam ty Voltíky všecky"

wwlado

Re: začiatočník v assembleri

Príspevok od používateľa wwlado » 26 Apr 2014, 12:31

Aky programator pouzivas?

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 26 Apr 2014, 20:15

peterple napísal:

Kód: Vybrať všetko

LDI  REG, 2
LDI  REG, 0x02
LDI  REG, 0b00000010
LDI  REG, 1+1
LDI  REG, 1<<ISC01
LDI  REG, 1<<1
Výborne. Porozmýšlať a vyskúšať je dobrá metóda niečo sa naučiť. Ešte sa vrátim k tomu vypočítaniu konštanty pomocou <<. Prišiel si na to prečo je najvýhodnejší ten piaty spôsob? Pretože funkčné sú všetky, ale iba ten piaty sa bežne používa.

Prípadne skús si sám z hlavy vypočítať akú hodnotu dajú do registra nasledovné inštrukcie a ako to nastaví chovanie INT0:

Kód: Vybrať všetko

LDI  REG, (1<<ISC01) + (1<<ISC00)
OUT MCUCR, REG

Kód: Vybrať všetko

LDI  REG, (1<<ISC01) + (1<<ISC01)
OUT MCUCR, REG

Kód: Vybrať všetko

LDI  REG, (1<<ISC01) | (1<<ISC01)
OUT MCUCR, REG

Kód: Vybrať všetko

LDI  REG, (1<<ISC01) + (1<<ISC10)
OUT MCUCR, REG
Správne hodnoty sa dozvieš keď to dáš preložiť a odsimuluješ to.
Ak z hlavy nerčíš správnu hodnotu a správne chovanie INT0 tak ešte neprebehlo také pochopenie ktoré sa dá použiť aj opačným spôsobom. Teda pre prípad že chcem voľačo nastaviť a musím vymyslieť ako to urobím.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

DJ_Edo
Pokročilý člen
Pokročilý člen
Príspevky: 775
Dátum registrácie: 23 Aug 2013, 16:07
Bydlisko: LV

Re: začiatočník v assembleri

Príspevok od používateľa DJ_Edo » 26 Apr 2014, 20:55

wwlado, mam spraveny USBasp,

peterple, piaty sposob je najvyhodnejsi, pretoze hned vidim ktory bit nastavujem, teda jeho meno z MCUCR.

1. REG=1+0=1 - aritmeticky sucet
2. REG=1+1=2 - aritmeticky sucet
3. REG=1|1=1 - bitovy sucet
4. REG=1+2=3 - aritmeticky sucet
0
Nasliněný prst na svorkovnici domovního rozváděče: "Jó, paninko, máte tam ty Voltíky všecky"

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 26 Apr 2014, 21:04

Tie výpočty výrazov si neskúšal v simulátore. Skús, budeš prekvapený. Ale kopíruj presne tie inštrukcie čo som napísal.
A ešte napíš ako sa bude spúštať prerušenie INT0
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

DJ_Edo
Pokročilý člen
Pokročilý člen
Príspevky: 775
Dátum registrácie: 23 Aug 2013, 16:07
Bydlisko: LV

Re: začiatočník v assembleri

Príspevok od používateľa DJ_Edo » 02 Jún 2014, 21:50

No tak som sa k tomu konecne dostal a hodil som to do simulatora:
Vysledok:
1. REG = 0x03 ---> 0b0000 0011
2. REG = 0x04 ---> 0b0000 0100
3. REG = 0x02 ---> 0b0000 0010
4. REG = 0x06 ---> 0b0000 0110

Hmm prekvapive zistenie, ze sa to sprava inak ako som si myslel. Takze, ak som to dobre pochopil, tak v 1. a 2. pripade sa spocitavaju pozicie a nulty bit by sa mal brat ako 1. pozicia prvy bit ako druha pozicia, pretoze podla mna tak je to logicke. Nulte poradie asi neexistuje.

Takto by to malo byt aj v druhom pripade - 2 + 2 je 4 co sedi aj v simulatore.

Treti pripad: 2. pozicia alebo 2. pozicia je stale len 2. pozicia, cize binarne to sedi aj v simulatore.

Stvrty pripad:
No tu uz mam problem a tomuto nerozumiem. Ked zoberiem ze (1<<ISC01) + (1<<ISC10) je (2. pozicia) + (3. pozicia) co je cislo 5 a binarne 0b0000 0101, tak ten hodnote zo simulatora opat nerozumiem. Keby som 2 a 3 vynasobil, tak dostanem 6 co by bolo spravne, ale zas to nesedi v prvom pripade. Takze nasobenim cesta nevedie.

Preco teda simulator vyhodnotil (1<<ISC01) + (1<<ISC10) ako REG = 0x06 ?
0
Nasliněný prst na svorkovnici domovního rozváděče: "Jó, paninko, máte tam ty Voltíky všecky"

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 02 Jún 2014, 23:26

Stále v tom nemáš jasno, plus zopár ďalších čo tu začínajú s programovaním. Dokonca v tomto prípade je jedno ci asm alebo C, ide o to isté. Máš tam úplne zlú predstavu s tými bitmi. Takže detailne popíšem prvý prípad ako to je.

Kód: Vybrať všetko

LDI  REG, (1<<ISC01) + (1<<ISC00)
OUT MCUCR, REG
1. z minula sme sa nejako dopátrali k tomu že ISC01 = 1 a ISC00 = 0
2. takže výraz (1<<ISC01) + (1<<ISC00) sa po nahradení symbolických mien zmení na
(1<<1) + (1<<0)
3. operácia x << n znamená - hodnotu x posuň doľava o n bitov
4. Vyhodnotíme prvú zátvorku, teda 1<<1. Aby to bolo vidno treba si číslo x napísať v binárnom tvare. Kedže REG je 8 bitový použijem aj ja 8 bitov. teda x=0000 0001
5. posuniem x o 1 bit doľava dostanem 0000 0010 (pri posune vľavo sa do nultého bitu vkladá vždy nulová hodnota, najvyšší bit sa stráca)
6. vyhodnotíme druhú zátvorku (1<<0). Tu sa mýliš. Nulová pozícia existuje a aj nulový posun. Takže ak niečo mám posunúť o nula miest vľavo, znamená to že nič neposúvam. Teda mám to isté x, teda 0000 00001
7 treba spočítať 0000 0010 + 0000 0001. Kto vie prevod z binárnej sústavy do desiatkovej tak to prevedie na 2 + 1 = 3.

A to je všetko.

Tak si to ostatné prejdi týmto spôsobom a možno ti to už bude jasné. Ak nie pýtaj sa ďalej.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Hinsi

Re: začiatočník v assembleri

Príspevok od používateľa Hinsi » 03 Jún 2014, 02:48

Teraz mi není jasné, kdo v čem nemá jasno, máte tam mít bitový součet, né aritmetický, i když to možná zdánlivě dělá totéž.

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: začiatočník v assembleri

Príspevok od používateľa peterple » 03 Jún 2014, 18:11

Vysvetlenie pre Hinsiho:
1. Ja v tom mám jasno.
2. Veľa začínajúcich síce tuší že asi bude rozdiel medzi + a |, ale už nie celkom vedia v čom.
3. V zdrojových programoch sa vyskytujú obe verzie. Osobne používam tú s OR funkciou, pretože si uvedomujem potenciálne nebezpečenstvo.
4. V príspevku hore som uviedol niekoľko variant, ktoré vyzerajú dosť podobne ale výsledky sú dosť odlišné. Stačí sa preklepnúť pri písaní v nejakej číslici alebo zameniť logiku indexov a ťažko odhalitelná chyba je na svete.
5. Tie štyri rôzne zápisy sú tam pre overenie si pochopenia, ako sa vyhodnocuje rotácia, aritmetický a logický súčet. Myslím že s tým tu má problém veľa začiatočníkov. Ale iba jeden má odvahu sa pýtať aby tomu porozumel.
6. Zatiaľ som použil tie jedoduché. Ešte mám v zálohe ďalšie prekvapenie na overenie toho ako pracuje <<, určite tušíš aké.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

DJ_Edo
Pokročilý člen
Pokročilý člen
Príspevky: 775
Dátum registrácie: 23 Aug 2013, 16:07
Bydlisko: LV

Re: začiatočník v assembleri

Príspevok od používateľa DJ_Edo » 03 Jún 2014, 18:45

Diky Peto uz tomu rozumiem.

Este aby som dokoncil zadanie od Petra:

Presusenie INT0 sa bude spustat takto:

1. 0b0000 0011 ---> bude reagovat na nabeznu hranu - hranovo citlivy vstup
2. 0b0000 0100 ---> bude reagovat na log. 0 a to dovtedy, kym bude na vyvode udrziavana log.0 napr. tlacitkom
3. 0b0000 0010 ---> bude reagovat na dobeznu hranu - hranovo citlivy vstup
4. 0b0000 0110 ---> bude reagovat na dobeznu hranu - hranovo citlivy vstup

Presusenie INT1 sa bude spustat takto:

1. 0b0000 0011 ---> bude reagovat na log. 0 a to dovtedy, kym bude na vyvode udrziavana log.0 napr. tlacitkom
2. 0b0000 0100 ---> bude reagovat na akukolvek zmenu ci uz z log.0 do log.1 alebo naopak
3. 0b0000 0010 ---> bude reagovat na log. 0 a to dovtedy, kym bude na vyvode udrziavana log.0 napr. tlacitkom
4. 0b0000 0110 ---> bude reagovat na akukolvek zmenu ci uz z log.0 do log.1 alebo naopak


Daj aj to prekvapko, ci sa s tym popasujem...
0
Nasliněný prst na svorkovnici domovního rozváděče: "Jó, paninko, máte tam ty Voltíky všecky"

Napísať odpoveď