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í 

Assembler- oprava kódu. PIC16F88
Jdi na stránku Předchozí  1, 2
 
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
PIClover



Založen: Jan 02, 2014
Příspěvky: 10

PříspěvekZaslal: so leden 04 2014, 15:49    Předmět: Citovat

Pawalo. V první řadě děkuju za nemalou pomoc.

A k těm dotazům. Jestli dobře vidím. Tak zápis se liší jen o zapis_cekat. Takže to chápu. Akorát trochu tápu v tom čtení, ale ještě jsem se na to nestihnul pořádně podívat. Večer na to kouknu a kdyžtak bych dal vědět.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
PIClover



Založen: Jan 02, 2014
Příspěvky: 10

PříspěvekZaslal: so leden 04 2014, 19:49    Předmět: Citovat

Naopak, mě by to bavilo, kdybych v tom pořádně uměl. Jenže když řešim takovou úlohu o které vím, že je jednoduchá a nevím si rady, tak k PICíku cítim odpor a celá práce pak stojí za prd, ale ted k věci.

Pro jistotu popíšu i to co si myslím, že chápu. Takže zapis_cekat

zapis_cekat btfsc eecon1,1
goto zapis_cekat
bcf eecon1,2

return

Takže já tam testuju bit 1 eeconu1 (předtím jsem tam zapisoval). Furt to tam jede dokola do te doby, než bude ten bit mít 0 hodnotu. Pak to přeskočí ten řádek s goto. A pak to bcf mi vynuluje v eeconu1 ten druhej bit.

Takhle to chápu myslím dobře. Z datasheetu vím, že druhý bit povoluje nebo zakazuje zápis. Záleží jestli tam dám 1 nebo 0 .


Ty dotazy napíšu na vícekrát. U mého počítače nikdy nevím, kdy přijde blue death nebo neco podobného a nechtěl bych to celé psát znova.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: so leden 04 2014, 20:06    Předmět: Citovat

bit 2 povoluje nebo zakazuje zápis, to víš dobře,,, to čekání je tam proto že zápis nějakej čas trvá, dal sem to tam kvůli simulaci. v tvym případě by to tam ani být nemuselo. používá se to když zapisuješ více dat hnedka po sobě. a jak je uvedeno v datašítu, může to bejt i na začátku rutiny zápisu. jinak tim bitem 1 zahajuješ zápis. a jak píšou v datašítu tak ten bit se sám nuluje když se zápis dokončí.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
PIClover



Založen: Jan 02, 2014
Příspěvky: 10

PříspěvekZaslal: so leden 04 2014, 20:24    Předmět: Citovat

A ještě v samotném zápisu jsem našel jednu změnu. Celý podprogram zápisu zůstal stejný, jen tam přibylo:

bcf eecon1,7 ;volba pamět EEPROM

Zase, vím, že instrukce bcf mi nuluje ten bit. V datasheetu vidím, že nulováním jsem si zvolil EEPROMku.
Já to takhle chápu, jen nevím, jak člověk musí přemýšlet aby se kouknul na program co mu nefunguje a řekl si "Hmm, tak támdle tomu chybí zvolení EEPROMky" . Mě by todle nikdy nenapadlo.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
PIClover



Založen: Jan 02, 2014
Příspěvky: 10

PříspěvekZaslal: so leden 04 2014, 21:44    Předmět: Citovat

Pak co tak studuju ten podprogram čtení, tak tam jsem to měl úplně proházené oproti tobě.

BANK2
movlw h'10'
movwf eeadr ;
BANK3
bcf eecon1,7 ;volba pamět EEPROM
bsf eecon1,0 ;zahájit čtení
BANK2
movf eedata,w
return

U tohodle si tak úplně jistej nejsem, ale popíšu jak to chápu.

movlw h10-mám to ve střadači
movwf eeadr-přesunu to do eeadru
pak jak píšeš v poznámkách vybereš eepromku, zahájíš čtení... Ale pak nechápu k čemu je tam ta BANK2? Dál tam je movf eedata,w čim zase přesunu z eedata do W což je pracovní registr. Takže ta BANK2 je tam kvůli W ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: ne leden 05 2014, 6:51    Předmět: Citovat

ano, u zápisu je jen navíc volba paměti, pač když se podivám na stav registru eecon1 po zapnutí, tak zjistíš je tam neni určenej stav, a může se i stát že se v programu jaksi udělá chybka a omylem se bit přepíše, tak je dobrý dycky tu pamět při rutině zápisu i čtení zvolit. v první řadě je dobrý přečíst si datašít. u eeprom, jako i u ostatních periferií, máš napsanej postup práce s periferií. a u eeprom máš i vzorovej příklad. takže přečíst, napsat hrubej kus kodu a pustit si simulaci. při krokování zjistíš co ti co kde jak dělá nebo naopak nedělá.

a čtení. tady to platí stejně, přečíst datašít, zjistíš postup práce s periferií. takže postup je jasně danej. bank2 před movf eedata,w musí bejt proto že registr eedata se nachází v bank2. kvuli střadači se banka nepřepíná, střadač pracuje ve všech bankách, banky přepínáš kvůli registrum s kerejma pracuješ.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
PIClover



Založen: Jan 02, 2014
Příspěvky: 10

PříspěvekZaslal: ne leden 05 2014, 20:53    Předmět: Citovat

Jo takhle, už to chápu. I vidim v datašítu, že eedata je v BANK2. Jasnýýý...

Pak tam jsou ty zpoždění. Na ty ani nekoukám... Jen ty zákmity tlačítek si ještě pořádně vychytám až na samotný desce. Takže se zpožděníma žádnej problém rozhodně nemám. Už nemám... Pamatuju si, že minulej rok to pro mě docela problém byl. Nevěděl jsem, že se to v assembleru dělá tím způsobem, že budu přeskakovat instrukci furt dokola. Byl jsem zvyklej z Bioloida (robo stavebnice), že napíšu jednoduše Timer = 1sec
Wait while (Timer > 0sec)
ale to jen tak na okraj.

Potom tabulka mi je taky jasná. Jen se zeptám, kdybych vícekrát dekrementoval tu proměnou pocet, dostal bych se na 0 nebo by mi to hodilo nějakej error?

K hlavnímu programu toho moc nemám. Jen u testu2 vidim
movlw b'11111111'
movwf porta
bcf portb,4


Toho samého bych dosáhl kdybych dal call init? Nebo jsi call init smazal z původního programu záměrně?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: ne leden 05 2014, 21:32    Předmět: Citovat

Kdyby si dekrementoval vicekrat tak by ses vratil na nejaky cislo a od toho by to pokracovalo. Ale pak uz to nebude plnit cistou funkci pocitani zapnuti.
Kdyby si v prubehu programu znova volal init tak bys znova prenastvil procesor, coz by mohlo prepsat nastaveni kery si udelal v prubehu programu , moch by se ti zhroutit program a delat nepredvidatelny efekty. Coz nechces. Takze celkovou inicializaci jen po zapnuti a pak uz ne. Pak uz jen prenastavovat periferie.
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
Strana 2 z 2

 
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.28 sekund