Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

pettter´s noob faq...
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: so březen 24 2018, 13:15    Předmět: Citovat

kód:
      BANKSEL 0
      CLRF   0X20
      CLRF   0X21
      CLRF   0X22
      CLRF   0X23
      CLRF   0X24
      CLRF   0X25
      CLRF   0X26
      CLRF   0X27

      MOVLW 0x20
      MOVWF FSR 
NEXT   MOVWF INDF
      INCF FSR, F
      MOVF FSR, W
      BTFSS   FSR,3
      GOTO   NEXT
      NOP      



INDF_PETTER.JPG
 Komentář:

Stáhnout
 Soubor:  INDF_PETTER.JPG
 Velikost:  34.66 kB
 Staženo:  157 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: so březen 24 2018, 15:19    Předmět: Citovat

Ďakujem!

Ú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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: so březen 24 2018, 16:36    Předmět: Citovat

pettter napsal(a):
kontroluješ bit 3 vo FSR, teda stav keď hodnota FSR dosiahne 34 hex
0x34 Question
https://cs.wikipedia.org/wiki/%C5%A0estn%C3%A1ctkov%C3%A1_soustava
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: so březen 24 2018, 16:52    Předmět: Citovat

Hmm, ja som to presypal cez konvertor https://www.binaryhexconverter.com/hex-to-binary-converter

A 34 preto, lebo si začal adresou 20 hex (0010 0000 bin). A najbližšie číslo, ktoré zmení bit 3 v adrese je ...

Aha do riti, 28!!! No nie som ja kus...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: ne březen 25 2018, 11:25    Předmět: Citovat

PIC16F88
Assembler v MPLAB X IDE

Mám tu (PE 07/2010 str. 5) taký príkaz, že:
kód:
LEDMEM EQU 0x20
SUBLW LEDMEM - 1

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?

alebo
kód:
MOVLW LEDMEM - 7

čo tu robí tých "- 7"?

Z datashitu to neviem vyčítať...
Help pleas...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: ne březen 25 2018, 11:42    Předmět: Citovat

pettter napsal(a):
- parameter na konci ( - 1), určuje, kam s výsledkom, v tomto prípade do LEDMEM?
jak si na to prisel ? tohle v DS urcite nepisou http://technology.niagarac.on.ca/staff/mboldin/18F_Instruction_Set/SUBLW.html

citace:
čo tu robí tých "- 7"?
a co ti na to rek simulator ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: ne březen 25 2018, 18:49    Předmět: Citovat

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í...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: ne březen 25 2018, 19:29    Předmět: Citovat

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 ... Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: ne březen 25 2018, 20:20    Předmět: Citovat

Ďakujem.

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ň obrazek_cenzurať či nie...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: ne březen 25 2018, 21:16    Předmět: Citovat

MiloPS3 napsal(a):
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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Atlan



Založen: May 10, 2004
Příspěvky: 4507
Bydliště: Košice

PříspěvekZaslal: ne březen 25 2018, 21:36    Předmět: Citovat

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)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: ne březen 25 2018, 22:01    Předmět: Citovat

Atlan napsal(a):
...Prejdi uz na Ccko...


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 obrazek_cenzura.


Naposledy upravil pettter dne ne březen 25 2018, 22:21, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pettter



Založen: Oct 07, 2013
Příspěvky: 83

PříspěvekZaslal: ne březen 25 2018, 22:11    Předmět: Citovat

Atlan napsal(a):
Ach jaj to je taka programatorska ficurka...


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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
AB1



Založen: Nov 23, 2009
Příspěvky: 312

PříspěvekZaslal: po březen 26 2018, 5:03    Předmět: Citovat

citace:
Ak si poviem, že konštanta je 0x0A a v registri W (stradači) je hodnota 0x05, tak:
SUBLW KONSTANTA = 0x0A - 0x05 = 0x05

Je to naopak. W se odečte od konstanty a uloží do W.

SUBLW KONSTANTA = 0x05 - 0x0A = -5

Viz
https://www.allcomp.cz/blog/wp-content/uploads/2016/05/Popis-instruk%C4%8Dn%C3%AD-sady-procesor%C5%AF-PIC.pdf
-------------------------------------------------------------------------
citace:
A ešte, ak to teda chápem dobre, na kieho je tam kua robí tá "-1" za príkazom???

LEDMEM EQU 0x20
SUBLW LEDMEM - 1

Operand je tady (LEDMEM - 1) = 0x1f.
Od 0x1f odečti W a ulož do W.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: po březen 26 2018, 5:06    Předmět: Citovat

W=k-W
?=0xA-0x5
?=0xA-(0x5-1)
jestly jsem to pochopi dobre.. pak na to jeste kouknu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
Strana 4 z 6

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.17 sekund