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í 

zápis do porta 16f84a
Jdi na stránku 1, 2  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
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: čt listopad 08 2007, 12:30    Předmět: zápis do porta 16f84a Citovat

Tak regulátor, zdá se, po dlouhé době konečně funguje a já v programu pokračuji dál. Narazil jsem na další zádrhel - potřeboval bych z portu A (např. bit 0,1,2,3) snímat stav a ten ukládat někam do registru. Současně však mám na RA4 přivedeny impulsy, které čítá TMR0 a které, pokud přesouvám celý stav portu, jeho stav zkreslují. Potřeboval bych vybrat pouze ty čtyři bity. Má to vůbec řešení ??

Děkuji
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
kony2807



Založen: Jul 29, 2007
Příspěvky: 305
Bydliště: Ostrava

PříspěvekZaslal: čt listopad 08 2007, 12:59    Předmět: Citovat

jsou bity 0-3 jako vstupy ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
kony2807



Založen: Jul 29, 2007
Příspěvky: 305
Bydliště: Ostrava

PříspěvekZaslal: čt listopad 08 2007, 13:02    Předmět: Citovat

pokud ano , btfsc / btfss a podle toho nastavovat bity rexistruX pomocí bcf/bsf
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
kony2807



Založen: Jul 29, 2007
Příspěvky: 305
Bydliště: Ostrava

PříspěvekZaslal: čt listopad 08 2007, 13:04    Předmět: Citovat

příklad:

kód:

bcf X,1
btfsc 05,1
bsf X,1


je - li bit 1 v portu A ve stavu 1 , zapíše se do registru X na bit 1 jedníčka
a opačně.

(VELICE SE OMLOUVÁM ZA CHYBU V KÓDU , PŘEDCHOZÍ VERZE BY OPRAVDU NEJELA)


Naposledy upravil kony2807 dne so listopad 10 2007, 16:50, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: čt listopad 08 2007, 13:16    Předmět: Citovat

jasné, jednoduché. Děkuji.

Já jsem až doposud vždy přesouval celý obsah, tak jsem se na tuto operaci nějak podvědomě zaměřil. Dík.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: čt listopad 08 2007, 15:30    Předmět: Citovat

No jo, jenže ono mi to přestalo fungovat celé. Koukni se, prosím na tuto část programu, jestli je to takhle možné.

bcf RYCHLOST,0
btfsc PORTA,0
bsf RYCHLOST,0

bcf RYCHLOST,1
btfsc PORTA,1
bsf RYCHLOST,1

bcf RYCHLOST,2
btfsc PORTA,2
bsf RYCHLOST,2




movf RYCHLOST,0 ;konstanta pro odecitani
subwf tmr0,1 ;odecte od tmr0 konstantu a ulozi vysledek do tmr0
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Banda



Založen: Mar 22, 2005
Příspěvky: 1170
Bydliště: OV

PříspěvekZaslal: čt listopad 08 2007, 23:41    Předmět: Citovat

Přečti si pořádně co ti napsal kony2807. Nejdřív BTFSC, pak ten zbytek!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Chenzee



Založen: Jun 26, 2007
Příspěvky: 464
Bydliště: Vysočina

PříspěvekZaslal: pá listopad 09 2007, 6:18    Předmět: Citovat

Já myslím, že to má OK1f v pořádku, udělá přednastavení bitu v registru na nulu a pokud je pinu tento stav, bit zustane v tomto stavu a pokud je tam stav opacny (v tomto pripade 1) tak se hodnota prepise na 1. Pokiud by to udelal tak jak pise kony2807, tak by nikdy nedosahl spravneho vysledku, protože pokud by tam byla nula, nulovani se neprovese a provede se stejně nastaveni (1) . Vysledek tedy bude vždy 1=chyba Shocked . A co takhle maskování nepoužívaných bitů??? To by nešlo??? Opravář
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: pá listopad 09 2007, 6:27    Předmět: Citovat

Že jsem to napsal jinak, to vím, Kony přečte stav bitu a je-li 0, tak v X bit nastaví a je-li 1, tak vynuluje a pak nastaví. To nepotřebiji.

Já bit v RYCHLOST nuluji a pokud je na vstupu 0, tak další řádek přeskočím, pokud je na vstupu 1, dalším řádkem bit v RYCHLOST nastavím.

Nejsem si ale jist, jestli lze takto zapisovat do registru hodnotu. Pokud do RYCHLOST vložím konstantu, vše funguje, pokud tam takto měním bity, program reaguje, ale zmateně, jako by v tom registru byly úplně jiné hodnoty.

Je možné, že tím nastavováním něco měním v reg STATUS? Ten totiž v programu využívám, ale moc ho zatím neovládám.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: pá listopad 09 2007, 6:29    Předmět: Citovat

Zdravím, Chenzee, mám radost, že jsem uvažoval správně.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: pá listopad 09 2007, 6:31    Předmět: Citovat

A o maskování bitů čtu prvně, můžeš mi to přiblížit?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jankop



Založen: Apr 04, 2007
Příspěvky: 679

PříspěvekZaslal: pá listopad 09 2007, 10:19    Předmět: Citovat

Samozřejmě že výše uvedené je přitažené za vlasy.
Sekvence
kód:
MASK_D3_D0  EQU  B'00001111'
............
............
............
movlw MASK_D3_D0
andwf PORTA,W
movwf RYCHLOST
udělá totéž, rychleji a s menší potřebou programové paměti.
To je to maskování bitů!
Tvůj problém může být právě v tom, že všechny bity PORTA nepřečteš současně a ony se v průběhu zdlouhavého nastavování registru RYCHLOST stačí změnit.
Používáte opravdu pozoruhodné programovací techniky, jste placeni od řádku? Very Happy


Naposledy upravil jankop dne pá listopad 09 2007, 11:02, celkově upraveno 2 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: pá listopad 09 2007, 10:50    Předmět: Citovat

Nejsem placený od řádku, ani jinak, jen se učím. A abych byl upřímný, nechápu to. Byl bys tak laskav a popsal mě funkci? Dík
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jankop



Založen: Apr 04, 2007
Příspěvky: 679

PříspěvekZaslal: pá listopad 09 2007, 10:59    Předmět: Citovat

Do registru W si dáš konstantu 0x0F (00001111B).
Provedeš logický součin mezi W a PORTA, který uložíš do W.
Horní čtyři bity registru W budou mít tím pádem nulovou hodnotu a dolní bity hodnotu přečtenou před tím z PORTA.
Pak prostě uložíš W kam potřebuješ tj. do RYCHLOST.
Tak jsem já pochopil tvůj původní požadavek.
To o těch řádcích nepatřilo tobě.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
ok1f



Založen: Sep 11, 2006
Příspěvky: 239

PříspěvekZaslal: pá listopad 09 2007, 11:24    Předmět: Citovat

Já se taky nijak nepohoršuji, uznávám, že nad tím, co už jsem vymyslel a co mě funguje, by asi někdo kroutil hlavou.

Ještě bych se chtěl zeptat na dvě věci:

- program by měl pracovat v 16f84 a v jeho instrukcích MASK není

- na porta jsou na RA4 neustále čítány impulsy ze snímače otáček. nebude vadit ono nulování?


mohl bych zaslat celý program, pokud by to bylo nutné k posouzení situace
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 1, 2  Další
Strana 1 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.18 sekund