[elektro] Pickit 2
István Ágó
ago.istvan at gmail.com
Mon May 26 19:56:01 CEST 2008
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]
>
More information about the Elektro
mailing list