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.
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
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.
Založen: Oct 06, 2005 Příspěvky: 87 Bydliště: Tábor
Zaslal: so leden 04 2014, 20:06 Předmět:
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čí.
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.
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 ?
Založen: Oct 06, 2005 Příspěvky: 87 Bydliště: Tábor
Zaslal: ne leden 05 2014, 6:51 Předmět:
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š.
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ě?
Založen: Oct 06, 2005 Příspěvky: 87 Bydliště: Tábor
Zaslal: ne leden 05 2014, 21:32 Předmět:
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.
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2
Strana 2 z 2
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.