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í 

seriál s PIC od p. Špringla občasný problém
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
Atlan



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

PříspěvekZaslal: po březen 14 2011, 22:09    Předmět: Citovat

skus dat preč sleep...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
abcdef



Založen: Mar 01, 2007
Příspěvky: 134

PříspěvekZaslal: út březen 15 2011, 7:21    Předmět: Citovat

dakujem, že si aspoň niekto všimol moje obrovské problémy. Dám vedieť...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: út březen 15 2011, 7:45    Předmět: Citovat

Treba si pozrieť obmedzenia pre simulátor týkajúce sa toho konkrétneho PICu. Nie všetko je dokonale simulované a podporované.
A rýchlosť simulácie je mnohonásobne pomalšia ako je reál. Možno stačí počkať...

Pre testovanie v simulátore uprav OPTION_REG
takto:
BSF STATUS, RP0
CLRF TRISB
; nasledujúce dve istrukcie skrátia SLEEP mod
MOVLW 0XF8
MOVF OPTION_REG ; delic WDT sa nastavi 1:1
;
BCF STATUS, RP0
.
.
.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
abcdef



Založen: Mar 01, 2007
Příspěvky: 134

PříspěvekZaslal: so březen 19 2011, 16:49    Předmět: Citovat

Dakujem Atlanovi a Procesorovi, že mi pomohli. Veľmi tazko sa mi to dostáva do hlavy. Najviac som prekvapený, že simulátor to nevie simulovať v reálnom čase.
Pri daľšej úlohe som mal experimentovať s preddeličkou (bity WDTPSx) v registri WDTCON. Tak som teda experimentoval, a funguje to(v kontaktnom poli).
Ale ako je možné, že to funguje, keď po "preštelovaní" WDTCON v Banke2 sa už nevrátim do Banky0 kde je PortB ???
A napriek tomu to funguje !!!

title "Projekt 3: Blikajuce svetlo podruhé"
LIST P=16F88
#INCLUDE <P16F88.INC>
;----------------------------------------------------
;NASTAVENIE KONFIG. SLOVA
;------------------------------------
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_ON & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
;----------------------------------------------------
;VLASTNY PROGRAM
;-------------------------------------------------
CLRW ;mazem reg. W
TRIS 6 ;W do TRIS 6 je TRISB a je v Bank1
BSF STATUS, RP1 ;vyberam banku 2
BSF WDTCON, WDTPS0 ;nastavujem pomer preddeličky WDT na 1:64
LOOP
SLEEP
INCF PORTB, f
GOTO LOOP

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



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: so březen 19 2011, 20:08    Předmět: Citovat

Kde berieš inštrukciu TRIS???
PIC16F88 je nemá v zozname inštrukcií.
Keď inak nedáš.... prekladač pozná nejaké "makro" s názvom TRIS a vygeneruje niekoľko inštrukcií (cca 6 až 8 ), aby tvoju lenivosť nahradil.
Tebe by stačilo jednou inštruciou prepnút do banku1, zapísať do portu B a keď treba vrátiť sa do banku0.
Pozri si výpis preloženého programu (xxx.lst)
Môžeš zobrať na to jed, že PIC pracuje ako si ho naprogramoval. Nie vždy to naprogramované je to čo je úmyslom autora.
To sa ti iba zdá, že funguje poľa tvojej predstavy.
K veci:Prepínaš bity ovládajúce smer portu B(lebo nie si v banku0). Ledka môže veselo cvičiť, nie žeby sa menila úroveň na výstupe, ale sa prepína vstup/výstup.
A ešte, aby bolo jasné toto funguje iba náhodou, lebo PORTB,0 (kde máš ledku) nie je po resete definovaný(x = unknown). A aby to blikalo musí byť v tom registri LOG.1-v tom je tá náhoda- za nie taká aby sa to dalo využiť ako generátor náhody, viacmenej je to závislé kus od kusa.
Ešte jednu radu: Všetko je v datasheete pre PIC16F88, z inikadiaľ sa to nedá vycucať.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
abcdef



Založen: Mar 01, 2007
Příspěvky: 134

PříspěvekZaslal: ne březen 20 2011, 7:23    Předmět: Citovat

inštrukciu TRIS kázal použiť autor kôli vyskúšaniu, aj keď sám písal že je zastaralá a pre 16F88 sa nepoužíva.
Tušil som, že som stvoril chujovinu a funguje to len silou vôle.
Najradšej by som s tým praštil.
Ale potom som napísal ešte jeden programík (lepšie povedané modifikoval), a ten by mal byť naozaj správny, ale nepáči sa mi ako som tam komplikovane riešil prepínanie medzi bankami.

title "Projekt 3: Blikajuce svetlo podruhé"
LIST P=16F88
#INCLUDE <P16F88.INC>
;----------------------------------------------------
;NASTAVENIE KONFIG. SLOVA
;------------------------------------
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF &

_WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON &

_WDT_ON & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
;----------------------------------------------------
;VLASTNY PROGRAM
;-------------------------------------------------
BSF STATUS, RP0 ;vyberiem banku 1
CLRF TRISB ;piny na PoTRB ako výstupy
BSF STATUS, RP1 ;vyber banku 2
BCF STATUS, RP0 ;dokonci výber banky 2
BSF WDTCON, WDTPS0 ;nastavujem preddeličku WDT na 1:64
BCF STATUS, RP0 ;vyberiem banku 0, kvoli praci na PORTB
BCF STATUS, RP1 ;dokončenie vyberu banky 0
LOOP
SLEEP
INCF PORTB, f
GOTO LOOP

END


Keby ste vedeli nejaký jednoduchší spôsob prepínania baniek, tak to by bolo super
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: ne březen 20 2011, 8:31    Předmět: Citovat

Toto je najjednoduchšie a dá sa ušetriť sem-tam jedna dve inštrukcie.
Ak si naštuduješ MacroAssembler da sa použiť aj inštrukcia makroasm "BANKSEL addrreg",
ale tá sa preloží vždy do dvoch inštr. Bc/sf podľa adresy registra.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
abcdef



Založen: Mar 01, 2007
Příspěvky: 134

PříspěvekZaslal: st srpen 10 2011, 10:57    Předmět: Citovat

ahojte prosím Vás, dá sa nejako nastaviť simulátor že mám pripojené pull-up odpory na pinoch napr. PORTu B ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Atlan



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

PříspěvekZaslal: pá srpen 12 2011, 18:03    Předmět: Citovat

hmm .. nechces si nainstalovat program Proteus 7.8 umožnuje vytvoriť schemu s procesorom nejake ledky displej ...nahrať program a odsimulovať. Dokonca ma podporu v MP labe pri simulaciuii priamo otvori okno s proteom a spisti program v procesore pričom si vieš krokovat program v MPlabe
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
abcdef



Založen: Mar 01, 2007
Příspěvky: 134

PříspěvekZaslal: so srpen 13 2011, 15:36    Předmět: Citovat

dakujem Atlan moj. skúsim si pohladat ten program. Ale skoda ze MPLAB to nevie. Lebo program postupne prepína úroveň L na RB5 až RB8 (simulácia čítania maticovej klávesnice 4x4). A ked tam nie je aktívna úroveň L, tak program ten pin hneď prepne ako vstup.
Rezistor pull-up tam okamžite zabezpečí H.
Ale v simulátore tam vždy ostane úroveň L aj ked je pin ako vstup
Tak som si v simulátore (stimulus) vyrobil akože pomocné tlačítka ktorými tam našťukám H
Ale po najbližšej sekvenci programu mi tam zasa ostanú LLLL.
A preto tam potrebujem nasimulovať niečo také ako pull-up rezistory.
bol by som rád keby sa toto dalo vyriešiť v MPLABe.
Zaoberám sa dielom 35 v PE11/2010.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: so srpen 13 2011, 17:22    Předmět: Citovat

Pred prvým "step" si nahoď na každý pin kde je pull-up H úroveň a je to.
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.21 sekund