Založen: Oct 02, 2009 Příspěvky: 5286 Bydliště: PO
Zaslal: út březen 15 2011, 7:45 Předmět:
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
.
.
.
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
Založen: Oct 02, 2009 Příspěvky: 5286 Bydliště: PO
Zaslal: so březen 19 2011, 20:08 Předmět:
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ť.
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 &
Založen: Oct 02, 2009 Příspěvky: 5286 Bydliště: PO
Zaslal: ne březen 20 2011, 8:31 Předmět:
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.
Založen: May 10, 2004 Příspěvky: 4513 Bydliště: Košice
Zaslal: pá srpen 12 2011, 18:03 Předmět:
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
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.
Č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.