zdravim
co zmenit v programu nebo kofig. slove u 874A u programu psanem pro874,
samozdrejme nefunguje
dik za rady
pavel
administrator: přejmenováno z "program z PIC16F874 na PIC16F874A"
zdravim
co zmenit v programu nebo kofig. slove u 874A u programu psanem pro874,
samozdrejme nefunguje
dik za rady
pavel
administrator: přejmenováno z "program z PIC16F874 na PIC16F874A"
sami nezda ze by nemalo ist…nedas sem kod ?
tu to je
takovy moc rozpracovany
PIC_874.asm (6.94 KB)
nastav si pojistky na A
[code]; Configuration Bits
_CP_ALL EQU H’1FFF’
_CP_OFF EQU H’3FFF’
_DEBUG_OFF EQU H’3FFF’
_DEBUG_ON EQU H’37FF’
_WRT_OFF EQU H’3FFF’ ; No prog memmory write protection
_WRT_256 EQU H’3DFF’ ; First 256 prog memmory write protected
_WRT_1FOURTH EQU H’3BFF’ ; First quarter prog memmory write protected
_WRT_HALF EQU H’39FF’ ; First half memmory write protected
_CPD_OFF EQU H’3FFF’
_CPD_ON EQU H’3EFF’
_LVP_ON EQU H’3FFF’
_LVP_OFF EQU H’3F7F’
_BODEN_ON EQU H’3FFF’
_BODEN_OFF EQU H’3FBF’
_PWRTE_OFF EQU H’3FFF’
_PWRTE_ON EQU H’3FF7’
_WDT_ON EQU H’3FFF’
_WDT_OFF EQU H’3FFB’
_RC_OSC EQU H’3FFF’
_HS_OSC EQU H’3FFE’
_XT_OSC EQU H’3FFD’
_LP_OSC EQU H’3FFC’
[/code]
a skus vypnout komparatory, pak by to mohlo jit
komparatory snad vyple, cofiguracni slove je uz v pohode
programator me ho umoznuje nastavovat rucne,
ale PROGRAM stale NEBEZI
-komparatory jsem doufam vypl timto nastavenim:
Pojistky je lepsi si zapsat do kodu, pak na ne nezapomenes ci nespletes, komparatory staci vypnout CMCON --0000 0111, bezelo ti to s tou 874 ?
pokud to nefunguje tak budes muset zjistit jestly MCU bezi, jestly to mas dobre zapojeny nebo nekde nakou “botu”, popripade co to dela / nedela, ne/reaguje …
r_W EQU RAM+30 ;—H’70’----tyhle reg umistni do spol adres casti!!!------
TAk toto na 070h urcite nemas umiestene max tak na 03Eh tak ze ktym veciam nemozes pristupovat z hociktorej banky len z banky0
A na tuto vec pozor !!! ADDWF PCL,F
RETLW B’11000000’ ;=0.
RETLW B’11111001’ ;=1.
RETLW B’10100100’ ;=2.
tieto riadky musia byt fyzicky ulozene v takej casti flash picka kde nedojde k pretceniu. tj napr od adresy org 10 a pocet moznych skokov bude 255-10=245 inak moze to blbnut vypliva to z toho ze citač a register PCL je len 256 bitovy
vecsinou som to riesil ako podprogram a vsunul za inicializaciu… tj inicializacia portou atd zabrala takych 25 riadkou a zvysok sa da lvyuzit na toto. Okrem ze to blbo vyzera lebo to tam akosi nasledovne nepatri ale funguje to.
ten program me na 874 jede
je presne pod 256B v ROM
s touhle instrukci
RETLW B’11000000’ ;=0.
RETLW B’11111001’ ;=1.
RETLW B’10100100’ ;=2.
byla potiz pri programu vetsim nez 256B v ROM
protoze tabulku jsem mel umistnenou v dolni casti ROM
do ted jsem o tomhle nevedel
takze hned jsem si ju premistil na 800h
ted jsem se trapil z 874A
problem s programatorem - zatim nejde
jeste nevi presne jak funguje prepinani bank u 874 pri pristupu do RAM(do definovanych registru)
u 16F84 jsem nic takoveho neresil
jen vim ze 877 ma poslednich 16 reg. mapovanych do vsech 4stranek?
nevim jak 874 poslednich 16 reg jestli jsou mapovany do 2stranek ?
je nutne prepinat banky pri cteni z reg. def. v RAM v 2bance?
ptam se jak neznalek ale mam v ruce jen CHIPON I a II z KTE tam to neni
dik pavel
ano spodnych 16 je mozne pristupovat z kazdej zo 4 baniek. Pre ostatne registre a ram sa myusis prepnud do danje banky…