Úprimne, myslí mi to viac abstraktne ako logicky, alebo radšej mám opisný spôsob ako logický... tak to skúsim po svojom.
-vyčistil si bunky od 20h - až po 27h
-vrazil si hex 20 do FSR čím si nastavil FSR na bunku 20h v BANK0
-nastavil si "bod zlomu" NEXT
-tú istú dvacku z W si vrazil do INDF, čím si bunku 20h naplnil hodnotou 32 dec
-pripočítal si jednotku k hodnote FS, čím si FSR posunul na ďalšiu bunku, teda 21h
-natiahol si hodnotu FSR do W, teda teraz je to 21 hex, alebo 33 dec
-kontroluješ bit 3 vo FSR, teda stav keď hodnota FSR dosiahne 34 hex tak tých 34 hex je blbosť, to som sa pomýlil, správne je to 28 hex, viď nižšie
----------ak je log 0 vracia sa no "bod zlomu" (NEXT)
----------ak je log 1 program sa zastaví (NOP)
Červenému nerozumiem. Vyčistil si bunky len do 27 hex a vo výpise pamete to máš tiež len do 27 hex... Tak prečo až 34? Či je to jedno vzhľadom k tomu že ide o ukážku?
Naposledy upravil pettter dne so březen 24 2018, 22:05, celkově upraveno 3 krát.
Chápem dobre, že:
- odčítam od LEDMEM (0x20) obsah v reg. W (LEDMEM-W=???)?
- parameter na konci ( - 1), určuje, kam s výsledkom, v tomto prípade do LEDMEM?
- ale prečo je tam znak "-" pred jedničkou?
Musím úprimne priznať, že to neviem.
Ako skúšam, tak skúšam, zisťujem, že to neviem odsimulovať. Ja ten MPLAB X IDE "poněkud" nezvládam. A v príkazoch assemblera tiež plávam na tenkom ľade. Dúfam, že je to stav dočasný. Riadne ma to nasiera, klávesnica mala už párkrát namále. Ale rozbíjanie HW mi moc nepomôže, možno trochu uľaví...
Instrukce SUBLW nema zadny kam s vysledkem, odecita 1 od hodnoty ulozene ve W a vysledek se ulozi o5 do W,
-1 znamena ze odecte 1,-7 znamena ze odecte 7 , takhle mi to ukazal simulator, tohle jsem taky videl po 1vy
Pouzivas 16f88 ta ma porporu jeste ve starym MPLABu, vyskousej si simulator tam ...
Ano, uvažujem o tom starom MPLAB 8, aj keď nemá už podporu a ani vývoj. Lenže na to čo potrebujem ja, isto stačí a je určite o dosť jednoduchši...
Lenže je to kua ďalší, pre mňa nový SW o ktorom viem úplný prd, znova sa učiť od začiatku... to sa mi fakt nechce. Z tohoto "obra" (MPLAB X IDE) sa idem posrať už od predvianoc a už viem min. aspoň založiť projekt! Prečítal som o ňom už kilá chujovín a tak, takže som v rozpakoch z toho, či sa naň ť či nie...
Instrukce SUBLW nema zadny kam s vysledkem, odecita 1 od hodnoty ulozene ve W a vysledek se ulozi o5 do W...
Sorry. Nechcem sa s Tebou prieť o to, čí máš pravdu, či nejako znevažovať Tvoje tvrdenia a p., len mi to nelezie do gebule a tak sa radšej opýtam ešte raz.
V popise (16f84A.cz, alebo 16F88.eng, aj v tom, čo si vlozil odkaz) je uvedené:
"SUBtract W from Literal, v českom DS - odečtení střadače od konstanty...
Syntax: [label] SUBLW k, v českom DS - navěští SUBLW k
Dokonca aj Operands vyzerá takto: k-(W)→(W), v českom DS: (W) = k - (W)
Kde je tu tá "-1"?
Skrátka ja to chápem tak, že od konštanty sa odčíta obsah W
SUBLW KONSTANTA = Konstanta - w(stradač)
Ak si poviem, že konštanta je 0x0A a v registri W (stradači) je hodnota 0x05, tak:
SUBLW KONSTANTA = 0x0A - 0x05 = 0x05
Chápem to dobre?
Tak som to pochopil. Len nechápem, načo je v tom mojom príklade z PE 7/2010 st.5 to "- 1"
No nič, idem zabiť mamuta (MPLAB X IDE) a simulovať...
Naposledy upravil pettter dne ne březen 25 2018, 22:54, celkově upraveno 1 krát.
Založen: May 10, 2004 Příspěvky: 4513 Bydliště: Košice
Zaslal: ne březen 25 2018, 21:36 Předmět:
Ach jaj to je taka programatorska ficurka. Syntax prekladaca stale plati, ale ten co to programoval si ulachcil vec. k malo mat hodnotu 19. Tj zapis mal byt Sublw 19.
Ale kedze memled by mohol niekedy dat na inu adresu ako 0x20, tak to napisal ako napisal.
Ak by memled dal na 0x30 tak by musel prepisovat to sublw cislo. Ale takto sa to spravi samo.
Teda aby som bol presny preklafac tam vlozi cislo 19(res ine ake vypocita ledmem-nejake cislo (-1 alebo -7). uP o nicom nevie on si vypocita sublw 19(13)
Prejdi uz na Ccko. Lebo za zchvilu si pri strankovani pamete a problemoch pri prekroceni 8bit adresy stranky (napr praca s tabulkou a plc ci aky rrgister na to je)
Je..m sa s tým už cca 5 mesiac po večeroch. Mám 57 a čo sa večer naučím, tak do rána zabudnem a tak mám problém udržať niť pri tomto a som rád že viem aspoň toľko čo sa už na mňa nalepilo. Okolo mňa žiadny rovesník, či známy nemá šajnu s čím sa drbkám, teda vo význame, že by bol aspoň náznak, že by tomu rozumeli... a tak jediný zdroj praktických info ste Vy, borci na fórach...
A tak to všetko odhodiť a začať znova... to sa na to vys..iem úplne. Ak si približne starý ako ja, vieš o šom píšem. Ak si mladší tak do 40, rýchlo sa všetko nauč, lebo potom je to čistá tortúra...
Takže preto assembler a MPLAB X IDE, lebo som s tým začal, zúrim pri tom už dosť dlho a začať z iným je min. na 99% neprijateľné. Naviac ide leto a dlhé dni...
A prečo som s tým začal až teraz? To sa poseriete! Našiel som pri upratovaní pivnice 6ks digitrónov...
A tiež preto, že zo sedenia na pive so športovými, politickými, teologickými...sexuologickími teoretikmi .
Naposledy upravil pettter dne ne březen 25 2018, 22:21, celkově upraveno 1 krát.
To som principiálne pochopil, že v tom príklade z PE ukladá stav PORTB postupne do adries 0x20 - 0x27 a posúva sa hore dolu po tých bunkách cez zmenu na FSR.
Ja si len pre seba analyzujem príkaz za príkazom, aby som to pochopil detailne. A zároveň sa naučil významy a praktické použitie jednotlivých príkazov.
A tak som došiel k tomu SUBLW a zopakujem otázku: chápem ho dobre ak si myslím že:
Ak si poviem, že konštanta je 0x0A a v registri W (stradači) je hodnota 0x05, tak:
SUBLW KONSTANTA = 0x0A - 0x05 = 0x05
A ešte, ak to teda chápem dobre, na kieho je tam kua tá "-1" za príkazom???
Naposledy upravil pettter dne st březen 28 2018, 7:09, celkově upraveno 1 krát.
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.