[elektro] Pickit 2
Skandar Graun
sgraun at gmail.com
Mon May 26 20:32:07 CEST 2008
Akkor nem tudom, mi lehet, nem az első telepítés, folyamatosan rakom
fel az újabb verziókat, ez a hiba marad. :-(
2008/5/26, István Ágó <ago.istvan at gmail.com>:
> A Set PC to cursorral csináltam, egy már megírt program közepébe
> illesztettem bele pontosan ahogy írtad. Ugyanígy 8.10 és 18F458-on.
>
> 2008/5/26 Skandar Graun <sgraun at gmail.com>:
> > Köszönöm a makrót, át fogom nézni.
> >
> > A példaprogramról annyit, hogy ez nem az. Ez egy működő program egy
> > (működő) szubrutinja, amit kimásoltam. Mint említettem, az
> > ellenőrzéseket elvégeztem máshol. Ennél a műfajnál természetesen
> > odafigyelek arra, hova fordítom. Egyébként az IT rutin ezek után
> > szokott következni.
> >
> >
> > 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ő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ő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ő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ől a példából, de ha
> >> > van saját, akkor azt.)
> >> > A szubrutin kezdő sorára mondd azt a jobb egérgombbal, hogy "set
> >> PC to cursor"
> >> > Adj kezdő értéket a W-nek.
> >> > Majd próbáld lépésenként (step into) végrehajtani.
> >> > Nekem most a legelső utasítást (movwf htemp) már nem hajtotta
> >> végre,
> >> > ellenben a következő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ő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’s Társkereső Iroda A tartós párkapcsolatok közvetítője!
> >>
> >> http://ad.adverticum.net/b/cl,1,6022,259322,318619/click.prm
> >>
> >>
> >> -----------------------------------------
> >> elektro[-flame|-etc]
> >>
> > -----------------------------------------
> > elektro[-flame|-etc]
> >
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list