Podivne chovani MPLABU
Miroslav Draxal
evik
Středa Březen 17 14:28:28 CET 2004
pridal jsi par bajtiku a tabulka koduj2 ti pretyka z 0 do 1 stranky pameti.
to je ten problem. skakat pomoci addwf pc,f se da pouze v ramci 1 stranky
od 00do ff. jeste musis k tabulce nastavit spravne byty v pclath. ( podivej
se do dokumentace u mocrochypu. je tam presne jak se skace v tabulkach. ja
to pouzivam takhle.
Hi_Tab set high $
Dni_mesic movlw high $
movwf PCLATH
movf Mesice,w
addwf PCL,f
nop ; 0 m?s?c p?eci nen?
retlw d'31'+d'1' ; leden
retlw d'28'+d'1' ; ?nor
retlw d'31'+d'1' ; b?ezen
retlw d'30'+d'1' ; duben
retlw d'31'+d'1' ; kv?ten
retlw d'30'+d'1' ; ?erven
retlw d'31'+d'1' ; ?ervenec
retlw d'31'+d'1' ; srpen
retlw d'30'+d'1' ; z???
retlw d'31'+d'1' ; ??jen
retlw d'30'+d'1' ; listopad
retlw d'31'+d'1' ; prosinec
if high $ > Hi_Tab
error " Tabulka p?etekla do dal?? str?nky, pros?m prove?te korekci "
endif
nebo
Hi_Tab set high $
Den_Tydnu_1 Uloz_Tabulku
addwf PCL,f ; prezrntuje p?evod ??sla na string
retlw Set_P ; zobraz? P
retlw Set_U ; zobraz? U
retlw Set_S ; zobraz? S
retlw Set_? ; zobraz? ?
retlw Set_P ; zobraz? P
retlw Set_S ; zobraz? S
retlw Set_N ; zobraz? n
if high $ > Hi_Tab
error " Tabulka p?etekla do dal?? str?nky, pros?m prove?te korekci "
endif
kde Uloz_Tabulku je makra
; W mus? z?stat zachov?no
Uloz_Tabulku macro
if high $ == 0x00
clrf PCLATH
endif
if high $ == 0x01
clrf PCLATH
bsf PCLATH,0
endif
if high $ == 0x02
clrf PCLATH
bsf PCLATH,1
endif
if high $ == 0x03
clrf PCLATH
bsf PCLATH,0
bsf PCLATH,1
endif
if high $ == 0x04
clrf PCLATH
bsf PCLATH,2
endif
if high $ == 0x05
clrf PCLATH
bsf PCLATH,0
bsf PCLATH,2
endif
if high $ == 0x06
clrf PCLATH
bsf PCLATH,1
bsf PCLATH,2
endif
if high $ == 0x07
clrf PCLATH
bsf PCLATH,0
bsf PCLATH,1
bsf PCLATH,2
endif
if high $ == 0x08
clrf PCLATH
bsf PCLATH,3
endif
if high $ == 0x09
clrf PCLATH
bsf PCLATH,3
bsf PCLATH,0
endif
if high $ == 0x0a
clrf PCLATH
bsf PCLATH,3
bsf PCLATH,1
endif
if high $ == 0x0b
clrf PCLATH
bsf PCLATH,3
bsf PCLATH,1
bsf PCLATH,0
endif
if high $ == 0x0c
clrf PCLATH
bsf PCLATH,3
bsf PCLATH,2
endif
if high $ == 0x0d
clrf PCLATH
bsf PCLATH,3
bsf PCLATH,2
bsf PCLATH,0
endif
if high $ == 0x0e
clrf PCLATH
bsf PCLATH,3
bsf PCLATH,2
bsf PCLATH,1
endif
if high $ == 0x0f
clrf PCLATH
bsf PCLATH,3
bsf PCLATH,2
bsf PCLATH,1
bsf PCLATH,0
endif
endm
to za tebe udela vse. MIRA
-----Original Message-----
From: owner-hw-news@list.gin.cz [mailto:owner-hw-news@list.gin.cz]On
Behalf Of Sa?a
Sent: Wednesday, February 27, 2002 9:14 PM
To: hw-news@list.gin.cz
Subject: Podivne chovani MPLABU
Zdravim lidi,
v priloze je jeden programek, ktery mi cele odpoledne fungoval a vecer,
po doplneni nekolika drobnosti proste prestal fungovat. Zajimave ale je, ze
cast, ktera zlobi, je jiz od rana stejna a menila jsem neco uplne jineho,
konkretne to byla konstatnta cekaci smycky. Ve vypisu je ono podivne misto
oznacene hvezdickami. Na simulatoru je videt, ze se program sam od sebe
resetuje na konci procedury KODUJ2. Pokud se oznacene misto odstrani, ale
staci vyhodit jenom jednu podminku, tak to funguje tak jak se da ocekavat.
Pritom procedura KODUJ2 se normalne pouziva i v jinem miste a tam je to bez
problemu. Napada nekoho co to muze byt ?
Dalsi informace klidne poskytnu, ale asi to nebude nutne. Program pocita od
00.00 do 23.59 a pak stale dokola. Jako displej je pouzit MM5450BN na portu
PA0-2, je to z programu jasne videt. Na portu PB jsou tlacitka. Kmitocet
oscilatoru je 3.2768 Mc/s (jiny nemam).
Paradox je, ze to cely den funguje a pak to zacne blbnout. Dala to i na
jinych procesorech.
Diky Sasa
---
Odchoz? zpr?va obsahuje celou moj? sb?rku vir? a jin?ch ??lenost?,
tak si je u?ijte ve zdrav? :)
Zkontrolov?no antivirov?m syst?mem AVG (http://www.grisoft.cz).
Verze: 6.0.325 / Virov? b?ze: 182 - datum vyd?n?: 19.2.2002
---
P??choz? zpr?va neobsahuje viry.
Zkontrolov?no antivirov?m syst?mem AVG (http://www.grisoft.cz).
Verze: 6.0.325 / Virov? b?ze: 182 - datum vyd?n?: 19.2.2002
Další informace o konferenci Hw-list