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í 

PIC - absolutní adresování

 
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
tmm
Neregistrovaný





PříspěvekZaslal: po listopad 17 2008, 12:19    Předmět: PIC - absolutní adresování Citovat

Zdravím, programuju PIC16F628A a potřeboval bych vědět, zda je možné, popř. jak, zapisovat/číst do/z adresy (Flash paměť), kterou mám uloženou v nějakém registru ...

V klasickém asembleru stačí hodit název proměnné do hranatých závorek [], tady to bohužel nejde a nevím, jak vhodně využít symbol $

Jednoduše - potřeboval bych do pracovního registru uložit obsah bajtu, jehož adresu mám uloženou v registru ADRESA - asi takto:
kód:
MOVF    [ADRESA],0

Tohle bohužel nefunguje.

Díky za jakékoliv rady.
Návrat nahoru
mihal



Založen: Apr 06, 2005
Příspěvky: 1841
Bydliště: Zilina

PříspěvekZaslal: po listopad 17 2008, 13:02    Předmět: Citovat

u motoroly je mov $1000,premenna obdoba lda $1000;sta premenna; cize hodnotu z adresy 1000h do premenna. Skusil by som to bez zatvoriek, pripadne zhliadni datasheet Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
tmm
Neregistrovaný





PříspěvekZaslal: po listopad 17 2008, 13:45    Předmět: Citovat

Tak mám pocit, že takhle to stejně nepůjde ... adresu musím zadat přímo při programování, ovlivnit ji hodnotou proměnné prostě nejde Sad

Ale našel jsem si v datasheetu informace o nepřímém adresování pomocí registrů INDF a FSR, bohužel se to týká nejspíš pouze paměti RAM, která je příliš malá...

Paměť flash je u toho typu PIC 2048 bajtů a potřeboval bych ji využít, ale začínám mít pocit, že to nejde ... z/do této paměti jde číst/zapisovat pouze při programování PICka ...
Návrat nahoru
mikollar



Založen: Dec 26, 2004
Příspěvky: 1430
Bydliště: Košice - okolie

PříspěvekZaslal: po listopad 17 2008, 13:54    Předmět: Citovat

do FLASH pamatie ide zapiovat aj citat programoma ale len pri vyssich radach napr 16F877A, este sa da vyuzit EEPROM ale ta nieje tiez velmi velka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
piitr



Založen: Oct 19, 2007
Příspěvky: 1003

PříspěvekZaslal: po listopad 17 2008, 17:42    Předmět: Citovat

Já dělám jen s PIC16F84, ale tohle bude nejspíš podobné. To INDF a FSR jsi našel dobře. To je přesně ono. PIC řeší nepřímou adresaci takhle, nemá na to adresní mód. Samozřejmě to jde pouze v té RAMce, jak jsi psal. Do FLASH paměti pro kód takhle zapisovat nejde. To jde, pokud vím, opravdu jen při programování. PIC má totiž paměť pro kód a data oddělenou. Myslím, že se tomu říká Harvardská architektura. Pro jednočipy je to celkem vhodné. Dokonce to jde tak daleko, že ta velikost 2048 není v bajtech, ale ve slovech, která jsou dlouhá 14 bitů nebo tak nějak. Takže bys to stejně nezpracoval osmibitovým procesorem.

Řešení: Pokud chceš i zapisovat, tak to prostě nejde. Jen v té RAMce. Pokud chceš jen číst data z nějaké tabulky konstant, tak použij instrukce ADDWF PCL a RETLW. V datasheetu najdeš, jak se to dělá.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
tmm
Neregistrovaný





PříspěvekZaslal: po listopad 17 2008, 18:57    Předmět: Citovat

Jednalo se mi o to, že bych měl někde v paměti uložené data, které bych smyčkou četl a podle nich bych řídil výstupy na pinech - tyto data bych chtěl ale občas jednoduše přepsat (např. jednoduchý soft na PC ve spojení se sériovou komunikací (USART) - potřebuju cca 1600 bajtů paměti, takže proto nepřipadá v úvahu EEPROM)

Tak to nakonec asi vyřeším externí EEPROM pamětí, 8k vyjde asi na 12Kč, takže vpodstatě neomezený prostor Smile

Díky všem za pomoc.
Návrat nahoru
marzou



Založen: Jun 24, 2007
Příspěvky: 130

PříspěvekZaslal: út listopad 18 2008, 12:27    Předmět: Citovat

jen stručně: od PIC18F by mělo jít do programové paměti FLASH i zapisovat, v instrukční sadě jsou pro to nové instrukce, se kterými je jednoduší i čtení, myslím, že využívají i autoinkrementálního ukazatele.
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
Strana 1 z 1

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