Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   625 / 1319
(#) potyo válasza tibiiii00 hozzászólására (») Dec 18, 2009 /
 
Fel lehet. ICSPDAT=PGD, ICSPCLK=PGC.
(#) tibiiii00 válasza potyo hozzászólására (») Dec 18, 2009 /
 
Köszi én is erre gondoltam csak nem voltam benne biztos
hali
(#) Attila86 hozzászólása Dec 19, 2009 /
 
Hogyan lehet egy ilyen programrészletet leszimulálni:
  1. Osztas_tizezerrel
  2.         movf    b'00100111', w          ;eloször felso bájt
  3.         subwf   SZAM1_felso, w          ;kivonás
  4.         btfsc   STATUS, C
  5.         incf    ATVITEL
  6.         movwf   SZAM1_felso                     ;eredmény tárolása
  7.         movf    b'00010000', w      ;azután alsó
  8.         addwf   SZAM1_also, w           ;kivonás
  9.         movwf   SZAM1_also              ;eredmény tárolás
  10.         btfss   STATUS, C               ;
  11.         decf    SZAM1_felso                     ;felso bájt dekrementálása
  12.  
  13.         btfss   ATVITEL, 0                      ;alulcsordult-e a felső bájt?
  14.         incf    tizezresek
  15.         goto    Osztas_tizezerrel
  16.         goto    Osztas_ezerrel

Én csak arra vagyok kíváncsi, hogy a "tizezresek' regiszter mennyi lesz a végén.
(#) icserny válasza Attila86 hozzászólására (») Dec 19, 2009 / 1
 
A kilépési pontra (goto Osztas_ezerrel a kilépési pont?) teszel egy töréspontot. Amikor ott megáll a program, akkor megnézed az eredményt (View/File registers, vagy View/Watch ablakban).
(#) Attila86 válasza icserny hozzászólására (») Dec 19, 2009 /
 
Köszönöm, sikerült!
(#) trudnai válasza Attila86 hozzászólására (») Dec 19, 2009 /
 
Idézet:
„movf b'00100111', w ;eloször felso bájt”


A MOVF az file regiszterbol (memoriabol) mozgat! Szerintem MOVLW B'00100111' -et akartal irni...

A "subwf SZAM1_felso, w" es a "movwf SZAM1_felso" helyett egyszeruen irhatnad, hogy "subwf SZAM1_felso, F"

Ugyanaz ADDWF-nel...

Azonkivul nem latom hogy lepne ez ki a ciklusbol! Feltetel nelkul ugrasz vissza az elejere...

Ja es az ATVITEL-t ugye nullazod az elejen?
(#) Attila86 válasza trudnai hozzászólására (») Dec 19, 2009 /
 
Ez a script részlet amit bemásoltam nagyon sok sebből vérzik és nem is az egész rutin, csak annak egy részlete.
Azóta rájöttem magamtól ezekre a hibákra és kijavítottam mindet! Most már működik a saját osztó szubrutinom.
Egy 16 bites számból csinál nekem 5db decimális számot.
Például ha SZAM1=d'25498' (persze két bájton), akkor ez lesz:
tizezresek=2
ezresek=5
szazasok=4
tizesek=9
egyesek=8

Utána már ki tudom jelezni akárhogy... :yes:
(#) icserny válasza Attila86 hozzászólására (») Dec 19, 2009 /
 
Ujjgyakorlatnak elmegy, de nem muszáj újra feltalálni a melegvizet. Az MCC18 telepítési könyvtárában ott van pl. az itoa függvény assembly forráskódja.
(#) trudnai válasza Attila86 hozzászólására (») Dec 19, 2009 /
 
Csatlakozom icserny-hez, pl sokszor az MIT-nak a piclist-jet hasznalom (ill annak is a techref-jet) hogy egy-egy rutint kinezzek:

http://www.piclist.com/techref/microchip/routines.htm

Konkretan az atalakito rutinok:
http://www.piclist.com/techref/microchip/math/radix/index.htm

De amugy ha a PIC-et akarod megtanulni, akkor erdemes ugyanigy sajat kutfobol megoldani, es mikor mar megy a sajat megnezni masok hogy csinaltak meg.
(#) valaki2 hozzászólása Dec 20, 2009 /
 
Az MCC18-s forditoban van szoftveres SPI mód. Ennél mindenképp definiálni kell a Chip Select -t?

4 db 4021 -s IC -t szeretnék beolvasni. Itt 3 PIC lábat használók, a LOAD -hoz, CLK hoz és a DATA -hoz.

Esetleg, azt még tudja valaki, hogy hogyan lehet itt beolvasni?? A doksiban csak irási funkció szerepel. Olvasásit nem látok...
(#) potyo válasza valaki2 hozzászólására (») Dec 20, 2009 /
 
Nemtudom, hogy muszáj-e, de ha igen, akkor adj be neki egy nem használt bitet egy változóból.
(#) valaki2 válasza potyo hozzászólására (») Dec 20, 2009 /
 
Értem.

Esetleg azt nem tudod, hogy szoftveres SPI esetén h kell olvasni?

Megnyitási és írási funkciót látok a doksiban, de olvasásit nem. Erről tudsz valamit?
(#) potyo válasza valaki2 hozzászólására (») Dec 20, 2009 /
 
Amennyi időt az ember az SPI doksikereséssel elvacakol, annyi idő alatt megír egy bitbillegtetést. Szóval fogalmam sincs, sosem használtam a gyári függvényeket SPI-re. De szerintem valami ReadSPI lehet.
(#) valaki2 válasza potyo hozzászólására (») Dec 20, 2009 /
 
Találó a név Értem. Kössz.
(#) icserny válasza valaki2 hozzászólására (») Dec 20, 2009 /
 
Idézet:
„szoftveres SPI esetén h kell olvasni?”
Bármilyen meglepő, az írás függvénnyel kell olvasni!

  1. char WriteSWSPI( char data );

Itt data az adat, amit kiküldesz, a visszatérési érték pedig az, amit beolvasol.
(#) potyo válasza icserny hozzászólására (») Dec 20, 2009 /
 
Végülis logikus, hiszen az SPI egy léptetőregiszter. Írás és olvasás egyidejűleg történik, csak esetleg egyik nincs figyelembevéve.
(#) Attila86 válasza trudnai hozzászólására (») Dec 21, 2009 /
 
Persze, ki lehetne ollózni mindent, csak abból nem tanulnék.

-------------------------------------------------------

Összeraktam ezt az áramkörömet: Bővebben: Link
De nem tudom beleírni a PIC-be a programomat! Ezt a hibaüzenetet írja ki az MPLAB:
Idézet:
„PKWarn0003: Unexpected device ID: Please verify that a PIC18F4520 is correctly installed in the application. (Expected ID = 0x1080, ID Read = 0x0)”

Mit rontottam el? Esetleg a program rossz? Itt van az is:

Muszer1.asm
    
(#) lidi válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
Próbáld meg a PGC / PGD ról ideiglenesen lekapcsolni a ledeket. Csak a pickit csatlakozzon.
(#) Attila86 válasza lidi hozzászólására (») Dec 21, 2009 /
 
Leszedtem őket, de így sem jó sajnos. :no:
(#) lidi válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
Programoztad már ezt a tokot ? Vagy most elsőre nem akar menni ? Zárlat, a panelen, szűrőkondik rendben vannak ? Ha adsz neki külön VDD -t ? Lehet hogy a PK nem bírja ellátni az egészet.
(#) Attila86 válasza lidi hozzászólására (») Dec 21, 2009 /
 
Nem, még nem programoztam ezt. De ahogy nézem nincs zárlat. A szűrőkondik megvannak (a PIC táplábain 1db 100nF-os fóliakondi egy 100µF-os elkóval), és nem adtam neki külön tápfeszültséget.
(#) lidi válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
Adj neki tápot külsőleg akkor. Ha így se menne, akkor én kivenném a PIC et az áramkörből, és beleraknám egy foglalatba, amin csak az ICSP lábak vannak behuzalozva közvetlen a PK -be. Ha így sem ismeri fel, akkor nem MPLAB ban, hanem a PK saját win-es programjával nézném meg. Ott van egy olyasmi opció hogy add vpp before vdd vagy vmi hasonló. És úgy megnézni, törölni teljesen. Ha ekkor sem ismeri fel akkor gáz van. Vagy a PIC, vagy a PK nincs rendben akkor.
(#) Attila86 válasza lidi hozzászólására (») Dec 21, 2009 /
 
Adtam neki külön tápot, így már tudom programozni. De a LED-ek nem világítanak.
(Ennyi az össz programom:
bsf TRISC,3
goto$)
(#) kisszee válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
A
  1. bsf TRISC,3

sorral csak azt éred el, hogy az RC3 bemenet lesz, vagy csak félreírtad?
(#) Attila86 válasza kisszee hozzászólására (») Dec 21, 2009 /
 
Hopsz, az igazából "bsf LATC,3". De így sem világít. :no:
(#) MPi-c válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
Power on Reset után minden port bemenet lesz: lásd adatlap: Table 4-4! Igy aztán a te kétsoros programod, nem sok mindent csinál...
Ui: A portot kimenetre kell állítani, mert a LATC-re sem fog semmi láthatót csinálni.
(#) Attila86 válasza MPi-c hozzászólására (») Dec 21, 2009 /
 
Persze, kimenetre állítottam őket! Mutatom:

Muszer1.asm
    
(#) MPi-c válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
Nem látom, hogy az oszcillátort mire állítottad.
(#) watt válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
Idézet:
„Adtam neki külön tápot, így már tudom programozni.”

Ez azért lehet, mert a gyári PK2 gyengébb, mint a klón, nem tud akkora áramot kikapcsolni.
Próbáld meg esetleg a PK2 programmal is, mert lehet, hogy az MPLAB mást is kavar.

MPi-c kérdésére van válaszod?
(#) kisszee válasza Attila86 hozzászólására (») Dec 21, 2009 /
 
Csak én nem látom az oszcillátorbeállítást? A kommentekben írod, hogy belső oszcillátorról akarod működésre bírni, de utána semmilyen erre vonatkozó beállítás nincs. (pl.: OSCCON regiszter, konfigurációs bit)

ui.: Ha jól vettem ki az adatlapból defaulton "External RC Oscillator, port function on RA6" -t állít be.
Következő: »»   625 / 1319
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem