Fórum témák

» Több friss téma
Fórum » PIC kérdés
 
Témaindító: 5cmarzo, idő: Ápr 14, 2007
Témakörök:
Lapozás: OK   2 / 2
(#) potyo válasza gabi20 hozzászólására (») Jan 2, 2010 /
 
Azt hol láttad, hogy olyanokat írnak, hogy CLRF0x31 meg MOVWF 0x1F ?
(#) gabi20 válasza potyo hozzászólására (») Jan 2, 2010 /
 
Én ilyen stílusban programozok
(#) potyo válasza gabi20 hozzászólására (») Jan 4, 2010 /
 
Akkor szokj le róla, ha szeretnél itt segítséget kapni!
(#) szocsi77 hozzászólása Feb 18, 2011 /
 
Sziasztok!

Most kezdtem pic-elni.Igaz csak pic szimulátorral(pic16f84), mert sajna még várom a megrendelt alkatrészeket.A pic szimulátoron tesztelgetve arra lettem figyelmes, hogy jóval több ciklust használ el mint kéne.Ezért írtam ezt a progit:

BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
BSF PORTB,1
BCF PORTB,1
BSF PORTB,0
BCF PORTB,0

Ehhez 40 ciklus kell.Gondolom a pic indításakor elhasználódik pár ciklus még a progi indulása előtt.Ezért fűztem hozzá az utolsó két sort, amit lépésről lépésre vizsgáltam.A 0. bit 1-re állítása és törlése is 4-4 ciklust emészt fel.A pic16f84 leírása szerint a BSF-BCF 1-1 ciklust használ el.Akkor, hogy is van ez?

A válaszokat előre is köszönöm! szocsi77
(#) El_Pinyo válasza szocsi77 hozzászólására (») Feb 18, 2011 /
 
Szia!
Az utasításciklus és az órajelciklus nem azonos fogalmak. A 8 bites PIC mikrovezérlők esetén 1 utasításciklus 4 órajelciklusnak felel meg. Az utasítások leírásánál pedig az utasításciklust adják meg ciklus alatt, nem pedig az órajelciklust.
(#) szocsi77 válasza El_Pinyo hozzászólására (») Feb 19, 2011 /
 
Köszönöm a választ!

Lenne még egy hülye kérdésem! Ha jól veszem le akkor a TRISB regiszter bitjeinek értéke határozza meg a portok irányát.A TRISB regiszter a 16f84-nél a bank1-be van.Ahhoz, hogy a bitjeit meg tudjam változtatni a bank1-be kell lépnem.

Ezt eddig így csináltam:

BANKSEL TRISB

Amikor néztem lépésről lépésre az eseményeket szemet szúrt BSF STATUS,RP0 parancs.A sok számolás közepette nem is nagyon foglalkoztam vele.Aztán nézegettem egy asm kódot és ott is volt ilyen parancs.Utánaolvastam, és kidolgoztam egy elméletet.Arra lennék kíváncsi, hogy helyes e?
Tehát:

Az RP0 regiszter értéke lehet 0 vagy 1, ez határozza meg, hogy melyik bankba vagyunk.A BANKSEL TRISB
parancs kiadásakor a pic megkeresi a TRISB regisztert, megnézi melyik bankba van, és átrak minket oda.Viszont ez több ciklust emészt fel mint a BSF STATUS,RP0 parancs.

Jól gondolom? Előre is köszi! Üdv! szocsi77
(#) kobold válasza szocsi77 hozzászólására (») Feb 19, 2011 /
 
Rosszul gondolod. Amikor azt írod a kódba, hogy BANKSEL TRISB, akkor tulajdonképpen nem a PIC számára írtál meg egy utasítást, hanem a fordítónak (compiler). A kimeneti állomány (hex) generálása közben a fordító ezt felismeri, megkeresi a TRISB-t tartalmazó bankot (ezt header, vagy include állományok tartalmazzák), és ennek megfelelően lefordítja a PIC "nyelvére", vagyis a kimenetben ugyanúgy BSF STATUS, RP0 lesz, mintha te direktben ezt írtad volna a kódban.
Az ilyen direktívák abban segítik a programozót, hogy ne kelljen azon gondolkodnia, hol is van a TRISB; a fordító tudni fogja.
(#) szocsi77 hozzászólása Feb 20, 2011 /
 
Sziasztok!

Rendeltem egy pickit2-t, 16f84-et szeretnék vele égetni.Meg szeretném oldani, hogy ne kelljen mindig kikapkodni a pic-et égetés után.Azt találtam ki, hogy csinálok egy külön panelt(tesztpanel), azon lesznek a ledek, kapcsolók, kristály, és a táp.Egy külön panelen lenne a pic, ezt egy 20 pines csatlakozón keresztül kötném össze a tesztpanellel teszteléskor.Égetéskor lehúzom a pic panelt és átdugom a pickit2-re.Kérdés, hogy nem probléma e a kristály távolsága, mivel külön panelon van?

Ha egy kimenetre állított portra kapcsoló van kötve, és véletlenül megnyomom lesz baja a pic-nek?

Köszi! Üdv! szocsi77
(#) El_Pinyo válasza szocsi77 hozzászólására (») Feb 20, 2011 /
 
Javaslom nézz utána az ICSP fogalmának, itt a fórumon sokszor előjött már. Lényege, hogy a fejlesztendő áramkörbe helyezett mikrovezérlő eltávolítás nélkül programozható. A kvarcnak közel kell lennie a mikrovezérlőhöz, EMI csökkentése, illetve a stabil berezgetés biztosítása érdekében. Ha a kimenet alacsony szintű, akkor nem (ha a nyomógomb GND-re húz), egyébként előfordulhat, hogy a port meghibásodik, természetesen ez függ a zárlat időtartamától is. Az ilyen hibák elkerülése érdekében szokás soros áramkorlátozó ellenállást iktatni a portláb ill. a nyomógomb közé (220-470 Ohm megfelelő).
(#) szocsi77 válasza El_Pinyo hozzászólására (») Feb 21, 2011 /
 
Köszi a választ!

Majd ezzel kapcsolatban lesz még kérdésem!
Azt esetleg meg tudod mondani, hogy a pic16f84 és az f84A között van e különbség égetés szempontjából?A pickit2-re mindenhol csak az f84A van feltüntetve.

Köszi!

Üdv!

szocsi77
(#) vilmosd válasza szocsi77 hozzászólására (») Feb 21, 2011 /
 
Hali
Lehet hogy tudja, meg kell probalni. A 'F84A elvileg 2x gyorsabban irja a Flash memoriat, tehat nem biztos hogy rendesen fogja programozni. Nekem erre van epitve egy soros porti programozo, ahol tudom irni a regi "C" sorozatu PIC-eket. Ajanlom meg figyelmedbe a hozzaszolasomat ahol is a egeto foglalatrol es a demo panelrol irtam.
(#) Hp41C válasza szocsi77 hozzászólására (») Márc 4, 2011 /
 
Szia!

Több eltérés is van a 16F84 és a 16F84A között. A leglényegesebb, hogy a 16F84A -ban van kiolvasható típuskód, a 16F83, 16F84, 16C83 és 16C84 -ben nincs. A másik eltérést már írták, a 16F84A gyorsabban írja a flash memóriát.
A furatszerelt klón cikkhez feltöltöttem egy módosított eszközleírót a PICKit2 V2.61 programhoz. A leíró állomány cseréje után "Manual device select" módban kiválasztható a 16F/C83 és a 16F/C84. A kiválasztás után programozhatók. Mivel nincs kiolvasható típuskódjuk (azaz minden bitre 1 -et ad a típuskód kiolvasása), előfordulhat, hogy automatikus típusdetektálásnál ezeket a típusokat fogja beállítani hiba esetén (PGD vonal mindig magasan van).
(#) szocsi77 hozzászólása Márc 12, 2011 /
 
Köszi a válaszokat!

Időközben kaptam kölcsön egy picstart plus programozót még meg nem jön a pickit2.Felmerült bennem még pár hardveres kérdés, majd összefoglalom és leírom ide.Most a fiamnak csinálnék egy szirénát a tűzoltóautójába, de sajna elakadtam.Azt kéne megoldanom, hogy két egymástól független ciklus fusson párhuzamosan, megoldható ez egyszerűen?

Üdv!

szocsi
(#) ssdroon30 hozzászólása Feb 9, 2022 /
 
Sziasztok!

Van egy fényerősség frekvencia konverter kapcsolásom 5V-os kimenettel,
és szeretném egy 3.3V-os PIC portjára illeszteni, és mérni a jel frekvenciáját.
A HE oldalon volt egy cikk https://www.hobbielektronika.hu/cikkek/egyperces_logikai_szintilles...3.html oldalon, amit átfutottam, és a kérdésem az lenne, hogy a fetes szintillesztő-s kapcsolást lehet e használni a fenti feltételekkel. Ide tartozó további kérdésem lenne még, hogy egy 5V-os, és egy 3.3V-os picet UART-on összekapcsolhatom e a fenti fetes szintillesztővel.
Válaszotokat előre is köszönöm!

Üdv.:
ssdroon30
(#) Bakman válasza ssdroon30 hozzászólására (») Feb 9, 2022 /
 
Az 5 V-os kimenetet két ellenállással, mint feszültségosztóval, tudod 3.3 V-ra csökkenteni. Könnyen lehet, hogy a 3.3 V-ot nem kell felskálázni 5 V-ra mert elég az a feszültségszint ahhoz, hogy az 5 V-os PIC RX menete magasnak érzékelje.

Konkrétan milyen PIC-ekről van szó? INLVL regiszterrel is lehet játszani az 5 V-os esetén, már ha van benne olyan.
Következő: »»   2 / 2
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