[elektro] Pickit 2

hg12345 hg12345 at freemail.hu
Mon May 26 20:54:18 CEST 2008


Skandar Graun <sgraun at gmail.com> írta:

> Köszönöm a makrót, át fogom nézni.

Szivesen...
> 
> A példaprogramról annyit, hogy ez nem az. Ez egy m&#369;köd&#337; program 
egy
> (m&#369;köd&#337;) szubrutinja, amit kimásoltam. Mint említettem, az
> ellen&#337;rzéseket elvégeztem máshol. Ennél a m&#369;fajnál természetesen
> odafigyelek arra, hova fordítom. Egyébként az IT rutin ezek után
> szokott következni.

Ok! de igy pont ennél kontroller tipusnál ez elég félrevezet&#337; ezt 
program részletet kiemelni. Amit leírtam pont err&#337;l szól. Az IT csak 
utalás volt mert eröteljesen belekavarhat a PC életébe. (Minden 
normális uC a stackre mentödik a PC és utána helyre áll, de itt a 
különálló regiszterekben speciális esetekben kavarodást okozhat. 

A simulátor meg sajnos több hibát vagy inkább nem azonos müködést 
csinál mint a silicon támogatott BDM. Ez legalább azonos a valódi 
hibákkal is. Doloztam ICE2000-rel is itt amig ezen futtattam a 
programokat addig volt három magrevizió és mindig máshol voltak a 
hibák.

Mióta software-ben irják a processorokat softwaresek, azóta 
lényegesen több a silicon bug, ami a különböz&#337; revisiokkal vándorólnak.
> 
> 
> A szimulátorról: Szerintem lényeges, hogy ne magában vizsgáld, 
hanem
> egy programon belül legyen befordítva és a "set PC to cursor"
> paranccsal lépj rá.
> Ha simán, a kezdetekt&#337;l indítom a szimulátort, nekem is végrehajtja.
> 
> 2008/5/26, hg12345 <hg12345 at freemail.hu>:
> > A minta programokban mindig az a baj, hogy olyan "Mint ha 
program"
> > lenne :-) E legtöbb nehezen használható igen hibás....
> >
> > Bocs hogy beleszolok, de a minta program több sebb&#337;l vérzik, ha
> > PIC18-re irtad ! A minta példa a 2xW nélkül jól müködik egy 16F/C
> > rendszeren, de nem egy 18F/C/J/K rendszeren. (Sajnos nem
> > kompatibilis a két rendszer, és nehezen de megtalálható a 
leírásban!)
> >
> > 1, A PCLATH és PCLATU nem frissül a program léptetésekor, ezek
> > önnáló regiszterek nincs sok közük a valós PC-hez! Igy akarmi 
lehet  e
> > két regiszterben, akárhová ugorhatsz.  A fenti két regiszter 
frisssiteni
> > kell. Sajnos a (addwf PCL,f) "R/M/W" utasitás nem frissíti,pedig 
logikus
> > lenne. A firssitést egy olvasással lehet megoldani.
> >       movff        PCL,dummy
> > sajnos ez se oldja meg teljesen a problémádat, mert a laphatárra
> > illesztést kézb&#337;l kell megoldani, itt szükebbek a laphatárok a mert 
más
> > PC számláló
> >
> > 2, Ha már 18-ról van szó akkor inkább a felesleges memória foglalás
> > helyett, használnám
> >      addwf     WREG,w  ;2x és a carryel se kell foglalkozni
> >
> > 3, a laphatár váltás megoldható, az add után
> >      SKIP(c)
> >        incf   PCLATH,f
> >      egy 32K laphatár megtalálása már nagyobb kunszt :-().
> >
> > 4, a fenti problémákat még az IT is nehezítheti..........
> >
> >
> > Egy univerzális macro a fenti probléma megoldására, ez nekem
> > müködött: Már rég nem foglalkoztam vele, ha valaki talál benne 
hibát
> > szoljon, elöre is köszönöm
> >
> 
> ;================================================
==
> > 
==================================================
> > ===============================
> > ; Inteligens memoria takareskos ADDWF PCL,w utasitas hasznalata
> > ;               MCASE_PCLw      type, tableend
> > ;tablestart     bra             ;type = 0 (4)      (rovid
> > lapon beluli cimzes) (max 7F cim lehet)
> > ;               bra             ;type = 1 (11/14)  hosszu
> > lapon keresztul atnyulo cimzes (max FF cim lehet)
> > ;               bra             ;Type = 2 (13/17)  (hosszu
> > C,W cimzes, maximalisan 1ff cim generalhato)
> > ;               bra             ;type = 3 (11/13)
> > (konstanscim + W)    MCASE_PCLw 3,tablestart
> > ;               goto            ;type = 4 (12/14)
> > (konstanscim + C,W)     MCASE_PCLw      4,tablestart
> > ;tableend
> > ;(megjegyeznem a teljes programtar cimzest a MICROCHIP nagyon
> > elrontotta, a PC szavas cimzesu es a TBLPTR meg bytes-is lehetne,
> > nem kevesebb problemat okozni mint igy!)
> > ;
> > ;
> > ; Fontos a beolvasast a WDTCON regiszterre vegzem, ezt a 
regisztert
> > alkalmazas elott ellenorizni kell, hogy csak olvashato
> > ;
> > MCASE_IncTOSH   MACRO
> >                 IF __MAXROM>0xFFFF
> >                  infsnz        TOSH,f
> >                  incf          TOSU,f
> >                 ELSE
> >                  incf          TOSH,f
> >                 ENDIF
> >                ENDM
> > ;
> > MCASE_PCLw      MACRO   Type,TableEnd
> >                LOCAL   TstPage = (TableEnd>>8)-($>>8) ,
> > TstPageStart=$
> >                IF Type==0 ;----------------------Rovid max 0x7F
> > cimzesu ugras
> >                 addwf  WREG,f                  ;2x a
> > WORD szervezesu a memoria
> >                 movff  PCL,WDTCON      ;(0xF9B)        ;PCLATH/U
> > frissitese
> >                 addwf  PCL,f
> >                 IF TstPage
> >                  ERROR Lapvaltas szerepel a CASE_PCLw
> > utasitason belul, hasznald a: MCASE_PCLw 1,xxxx,  Address S/E: 
#V
> > (TstPageStart)/#V(TableEnd)
> >                 ENDIF
> >                ENDIF
> > ;
> >                IF (Type<3) & (Type>0)  ;-----------------
> > Relativ Stack-en keresztuli teljese cimzes
> >                LOCAL
> >        MCASE_PCLw_0s,MCASE_PCLw_0e,MCASE_PCLw_00,MCASE_
> > PCLw_01,MCASE_PCLw_02,MCASE_PCLw_0c
> >                 push
> > MCASE_PCLw_0s
> >                 IF Type==2             ;--------- Extra
> > hosszu ADDWF PCL,w utasitas (C,W) maximalisan cimezheto 
memoria
> > atfogas 0x1FF
> >                  bnc   MCASE_PCLw_0x
> >                   MCASE_IncTOSH
> > MCASE_PCLw_0c
> >                 ENDIF
> >                 addwf  WREG,w          ;2x a WORD
> > szervezesu a memoria
> >                 bnc    MCASE_PCLw_00
> >                  MCASE_IncTOSH
> > MCASE_PCLw_00    addlw  MCASE_PCLw_0e-MCASE_PCLw_0s
> >                 bnc    MCASE_PCLw_01
> >                  MCASE_IncTOSH
> > MCASE_PCLw_01    addwf  TOSL,f
> >                 bnc    MCASE_PCLw_02
> >                  MCASE_IncTOSH
> > MCASE_PCLw_02    return                 ;>>>> elugras a
> > kivalasztott cimre
> > MCASE_PCLw_0e
> >                 IF (!TstPage) & (Type<2)       ;ha a cim tartomany
> > 1FF akkor nem lehet roviditeni
> >                   MESSG Nem kell hosszu CASE utasitas, hasznald
> > a : MCASE_PCLw 0,xxxx  Address S/E: #V(TstPageStart)/#V
(TableEnd)
> >                 ENDIF
> >                ENDIF
> > ;
> >                IF  Type>=3             ;----------------
> > Konstans + displacement(w) cimzesek kovetkeznek
> >                 push                   ;stack felszabaditasa
> >                 clrf   TOSH            ;csak ezt kell torolni,
> > itt szamolom az atvitelt
> >                 IF Type==4
> >                  rlcf  TOSH,f          ;Carry elhelyezese a
> > memoriaban, igy 0x1FF cimzes cimezheto
> >                 ENDIF
> >                 addwf  WREG,w          ;2x
> >                 SKPNC
> >                  incf  TOSH,f          ;atvitel bejegyzese
> >                 addlw  Low(TableEnd)   ;FIGYELEM ilyenkor a
> > TableEnd = TableStart!!!!!!!!!!
> >                 movwf  TOSL
> >                 movlw  High(TableEnd)
> >                 addwfc TOSH,f
> >                 clrf   TOSU
> >                 IF     __MAXROM>0xFFFF
> >                  movlw   Low((TableEnd)>>0x10)
> >                  addwfc  TOSL,f
> >                 ENDIF
> >                 return                 ;>>>> elugras a
> > kivalasztott cimre
> >                ENDIF
> >
> >                IF Type>4
> >                 ERROR  MCASE_PCLw Type,Cim -ben a Type>4
> > ertekek nincsenek implementalva
> >                ENDIF
> >                ENDM
> 
> ;================================================
==
> > 
==================================================
> > ============================
> >
> >
> >
> >
> >
> >
> >
> >
> > Skandar Graun <sgraun at gmail.com> írta:
> >
> > > Keress egy szubrutint. (esetleg az érdekesség kedvéért egy 
olyat,
> > ami
> > > a pcl-t is mozgatja, pl:
> > >
> > > cur_out:
> > >               movwf   htemp
> > >               addwf   htemp,w
> > >               addwf   pcl,f
> > >               dt      0,0,1,2,3,3,2,2,2,4,  5, 2,  6,  7,  8,  8,  8,
> > 8, 9,  2,0ah, 3,
> > >  3,  3,  3,0bh,  2,0ch,  2,  2,0dh,0eh,0fh,10h,0,0
> > >
> > > Nyiss egy watch ablakot.
> > > Tedd bele a wreg és a htemp regisztereket. (Ebb&#337;l a példából, 
de ha
> > > van saját, akkor azt.)
> > > A szubrutin kezd&#337; sorára mondd azt a jobb egérgombbal, 
hogy "set
> > PC to cursor"
> > > Adj kezd&#337; értéket a W-nek.
> > > Majd próbáld lépésenként (step into) végrehajtani.
> > > Nekem most a legels&#337; utasítást (movwf htemp) már nem hajtotta
> > végre,
> > > ellenben a következ&#337;ket igen és utána úgy elugrott a pcába, 
hogy
> > csak
> > > lestem.
> > >
> > > 8.10-es mplab, 18f458 -as proci
> > >
> > > Ne keresd az értékellen&#337;rzést, az nem ebben a rutinban van, de 
van.
> > >
> > > Torok Imre <ha8lls at mystic-sound.hu> írta, 2008.05.25.:
> > > > Szia Istvan, Sziasztok!
> > > >
> > > > Koszonom a hozzaszolasokat, letiltottam minden mas egyebet 
a
> > portc-n,
> > > > es jo lett a szimulatorban is.
> > > >
> > > > DE!
> > > >
> > > > Mivel ez a PK2-hoz adott peldaprogram volt, ami ugye a 
kezdoknek
> > > > bemutat egy-ket fogast, lehetoseget, akkor miert nincs 
normalisan
> > > > megoldva a feladat??? Gondoltam, nem csak beletoltom a pic-
be a
> > > > progit, hanem esetleg belenyulok, atirom, szimulalom, meg 
ilyenek,
> > > > hisz eleg regen hasznaltam mar az 5-os mplab-ot. Engem is
> > megfogott a
> > > > dolog, akkor egy teljesen kezdo, akinek tenyleg ez az elso
> > > > probalkozasa, es esetleg meg nem is tagja olyan listanak vagy
> > > > csoportnak, amely tudna neki segiteni, 5 perc utan bevagja a
> > sarokba,
> > > > hogy sz at r az egesz... azert, mert a kedves mernokur, aki irja a
> > > > sample-kat, meg lesson-oket az tojik a dolog korrektsegere....
> > > >
> > > > Koszonom a segitseget megegyszer es a ravilagitast a 
dolgokra!
> > > >
> > > > Udv!
> > > > Imre
> > > >
> > > > --
> > > > Best regards,
> > > >  Torok                            mailto:ha8lls at mystic-sound.hu
> > > >
> > > > -----------------------------------------
> > > >          elektro[-flame|-etc]
> > > >
> > > -----------------------------------------
> > >           elektro[-flame|-etc]
> > >
> >
> > 
_______________________________________________________
> > Magányos vagy? Társat keresel? Vár Rád a Dual&#146;s Társkeres&#337; 
Iroda  A tartós párkapcsolatok közvetít&#337;je!
> >
> > http://ad.adverticum.net/b/cl,1,6022,259322,318619/click.prm
> >
> >
> > -----------------------------------------
> >          elektro[-flame|-etc]
> >
> -----------------------------------------
>           elektro[-flame|-etc]
> 

_______________________________________________________
A 79. Ünnepi Könyvhét újdonságai! 
http://bookline.hu/control/news?newsid=1378&tabname=book&affiliate=freukhkar6060



More information about the Elektro mailing list