Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   10 / 1210
(#) Directors hozzászólása Ápr 17, 2009 /
 
Üdv!

PGD (Adat ki) az a 16.os láb az ACK (Adat be) 15 láb a mellékelt PIC-nél?

És a PGC (Órajel) az melyik láb lenne? a 3-as?

előre is köszi

16F842.doc
    
(#) MPi-c válasza Directors hozzászólására (») Ápr 17, 2009 /
 
Kérlek, hogy pontosan tedd fel a kérdésedet, ne kelljen senkinek gondolatolvasással foglalkozni...

Ezt így illett volna kezdeni: Adott egy 16F84 típusú PIC...
Ha már ezt a doc-ot nézed - volt már róla szó, hogy 16F842 típusú PIC nem létezik - akkor azt az eredeti adatlappal együtt tedd, mert bizonyos részek hiányoznak belőle.
A PIC soros programozására szolgáló kivezetések általában PGD, PGC, néha ICSPDAT, ill. ICSPCLK.
Ezeket az eredeti adatlap jelöli - jelen esetben a 16F84A adatlap "TABLE 1-1" leírás részében olvasható. Gyakran a PIC RB6-os kivezetése a PGC, az RB7-es pedig a PGD.
Ennél a PIC-nél is így van, tehát PGC a DIP tokos változatnál a 12-es, a PGD a 13-as kiveztés. ACK nincs, azt máshonnan keverted ide...
A soros programozáshoz, további kivezetésekre is szükség van, lásd (keresd): ICSP!
(#) Directors válasza MPi-c hozzászólására (») Ápr 17, 2009 /
 
Rendben,köszi.

Csak azért kérdeztem,hogy tudjam,hogy melyik lábat hová kössem ezen az égetőn "lásd a mellékletet".Bővebben: Link
(#) gabor128 hozzászólása Jún 20, 2009 /
 
Sziasztok!

Az alábbi progi részletből az utolsó utasítást nem akarja valamiért megcsinálni. Már mindent megnéztem és nem értem hogy miért nem csinálja meg.

CBLOCK 0X00
A1
ENDC

MOVLW 01H
MOVWF A1 <--ezt

Valaki tudja esetleg?>
(#) kobold válasza gabor128 hozzászólására (») Jún 20, 2009 /
 
Ha biztos vagy abban, hogy van 0x00 című írható regisztered (ugyanis abba próbálsz írni), akkor talán bankváltási problémád van. Milyen kontroller, ez az első kérdés...
(#) gabor128 válasza kobold hozzászólására (») Jún 20, 2009 /
 
Gondolom én foglaltam le memóriát az A1-nek, így írható is. 18F452-esem van. Az elvileg automatikusan kezeli a bankváltást, kivétel, ha külön akarom kezelni, de abba még nem túrtam bele.
(#) kobold válasza gabor128 hozzászólására (») Jún 20, 2009 /
 
Mivel ez a regiszter ott létezik és írható is, nem módosítottad véletlenül a BSR értékét? Indulás után 0, ezzel az értékkel 0x00-t írná, de ha pl. 1 van benne, már az 0x100-at írná (azaz nem írja egyiket sem, és olvasáskor 0-t ad vissza).
Automatikusan akkor találja meg a megfelelő bankot, ha MOVWF A1, 0 alakot használsz (vagy 0 helyett az ACCESS deklarációt, kinek hogyan tetszik), ez felülbírálja a BSR bitjeinek jelentését.

Szerk.: javítva, elírtam a regiszterek címeit...
(#) gabor128 válasza kobold hozzászólására (») Jún 20, 2009 /
 
Különben ha EQU-val definiálom, akkor működik az utasítás, csak ha máshol is beolvasom ezt a "konstanst", akkor ott az eredeti értéket fogja beolvasni. Így változónak ez a megoldás nem jó.
(#) gabor128 válasza kobold hozzászólására (») Jún 20, 2009 /
 
Ez a program szivat engem. Most máshol nem olvas.
Azt tudnod kell, hogy egyelőre az Mplab szimulátorban futtatom. Minden módosítás után lefordíttatom, meg nyomok egy reset-et a lépésenkénti végrehajtás előtt.

MOVLW 01H
MOVWF A1,0 ;ez volt a probléma előbb

UJRA
MOVLW A1 ;most meg ez, A1 nem íródik be W-be
MOVWF PORTD
CALL DELAY
RLNCF A1,1
GOTO UJRA

Valamit rosszul csinálok?
(#) MPi-c válasza gabor128 hozzászólására (») Jún 20, 2009 /
 
Idézet:
„Valamit rosszul csinálok?”


Mit jelent a "MOVLW" utasítás?
(#) kobold válasza gabor128 hozzászólására (») Jún 20, 2009 /
 
Idézet:
„MOVLW A1”
-> ez 0xA1-et ír be az akkuba, nem az A1 nevű regiszter aktuális értékét!
Idézet:
„MOVF A1, 0, 0”
biztosan működik, lásd az adatlap erre vonatkozó részét.
(#) potyo válasza gabor128 hozzászólására (») Jún 20, 2009 /
 
MOVLW - MOVe Literal to Work register. Tehát a MOVLW konstanst ír a W regiszterbe, nem egy változó tartalmát! Változó tartalmának W-be másolásához a MOVF utasítást kell használni - MOVe File to: MOVF A1, W

Arról szokj le már most, hogy az operandusnak 0-t meg 1-et írsz, mert nagyon megnehezíti a hibakeresést, és hajlamosak vagyunk nem segíteni, ha valaki ilyeneket ír!

RLNCF A1, F - ha önmagában akarod forgatni.
RLNCF A1, W - ha W-ben akarod a forgatás eredményét.
Ugyanez érvényes ADDWF, SUBWF, INCF, stb. utasításokra is.
(#) gabor128 válasza potyo hozzászólására (») Jún 20, 2009 /
 
Értem!

Köszönöm a válaszokat!

(#) xx12xx hozzászólása Jún 21, 2009 /
 
Hali
Segítséget kérek. Ha valaki egy egyensúlyzó robot építéséhez akar elméleti információkat gyüjteni (Magyar nelven) akkor azt hol teheti meg? Sajnos a Googl-on nem túl bőven találtam ilyet. Érdekelne még egy elektronikus gyroscope leírása is.
(#) icserny válasza xx12xx hozzászólására (») Jún 21, 2009 /
 
1. Meg kell barátkozni az angollal!
2. Giroszkóp
3. Egyensúlyozó robot:
- Elmélet
- Gyakorlat
(#) xx12xx válasza icserny hozzászólására (») Jún 21, 2009 /
 
Köszönöm, erre gondoltam, sokat segítettél. Ez 50 pont.
(#) icserny válasza icserny hozzászólására (») Jún 22, 2009 /
 
Bocsánat, az előző hozzászólásban elrontottam a linket (a végén maradt valami szemét).

A javított link:
-Elmélet
(#) varttina hozzászólása Jún 26, 2009 /
 
Sziasztok!
Most kezdek foglalkozni PIC-ekkel. Már jó pár oldalt megnéztem a témával kapcsolatban, és úgy találtam a PIC16F877 lesz a számomra megfelelő darab. Persze mondanom sem kell, hogy ahány oldal, annyiféle égető áramkör. Az lenne a kérdésem, hogy ezek közül melyik az ami tényleg működik, illetve milyen égetőprogramot érdemes hozzá letölteni? Windows XP és Ubuntu Linux van a gépemen.
(#) icserny válasza varttina hozzászólására (») Jún 26, 2009 /
 
Vannak egyszerű kapcsolások (pl. a például a Watt-féle mini-LPT, de nem minden körülmények között megbízhatóak, mert a számítógép alaplapjától is függ, hogy működnek-e.

Vannak megbízható kapcsolások, de azok nem egyszerűek (PICkit2 klónok) és PIC égetés is kell hozzá...

Van egyszerű és megbízható megoldás is (veszel egy PICkit2 programozót készen), de az meg drága.

Melyik ujjadat akarod harapni?

Mellesleg a PIC16F877 egy kissé elavult, ennek megfelelően drága mulatság. Miért is nem jó a PIC16F887 vagy valamelyik PIC18F példány?
(#) potyo válasza icserny hozzászólására (») Jún 26, 2009 /
 
Idézet:
„Miért is nem jó a PIC16F887 vagy valamelyik PIC18F példány?”


Mert közel sem olvasott el annyi mindent, amit el kellene olvasnia. Pl. itt a hobbielektronikán a PIC-es témákat...
(#) varttina válasza icserny hozzászólására (») Jún 26, 2009 /
 
Megnéztem a PIC16F887 adatlapját, tökéletesen megfelel nekem. Először megpróbálkozom valami egyszerűbb kapcsolással, ha nem műküdik, akkor személyesen felkeresek valakit, aki tud PIC-et programozni.
(#) icserny válasza varttina hozzászólására (») Jún 26, 2009 /
 
Remélem sejted, hogy nem véletlenül linkeltem be Watt mini-LPT programozóját...

A PIC16F887-hez itt találsz egy kitűnő könyvet.

A magyar nyelvűek közül ezt feltétlenül nézd meg.

Érdemes előbb az elvi alapokkal megismerkedni (adatlap, a fenti irodalom, MPLAB, fordítók), s a programozással és az MPLAB szimulátorral is megbarátkozni, mielőtt egy alkatrészt vagy forrasztópákát vennél a kezedbe!
(#) varttina válasza icserny hozzászólására (») Jún 26, 2009 /
 
Köszönöm a tippeket! Nézegettem mindkét linket, hasznos dolgok vannak benne.
Az MPLAB-ot letöltöttem, telepítettem és azóta is azt próbálgatom.
(#) gydanee válasza icserny hozzászólására (») Jún 26, 2009 /
 
Hali!
Ez az angol nyelvű link nagyon jó! El is kezdem tanulmányozni.
Köszi szépen!
(#) icserny válasza varttina hozzászólására (») Jún 27, 2009 /
 
Azt elfelejtettem mondani, hogy PIC16-hoz a Hi-Tech a hivatalosan támogatott C fordító, amióta a Microchip felvásárolta.

Az ajánlott angol nyelvű könyv példáihoz kipróbálhatod a MikroC demó változatát, de hosszú távon nem érdemes azon a vonalon haladni.
(#) wangi hozzászólása Jún 28, 2009 /
 
Tiszteletem mindenkinek.
Egy kis segitséget kérnék 18F4520 ügyében.Az elkészitett programomban a PORTE.0,PORTE.1 és a PORTE.2-es vezérlésekor bármelyiket aktivizálom a már elözöleg bekapcsolt lezár.Pontosabban mondjuk ha már a PORTE.0 már aktiv és mondjuk a PORTE.1 bekapcsolom a PORTE.0 lezár annélkül hogy erre hivatkozó parancsot kapott volna.

A konfig.és a prg.kezdéskor definiált portok beállitása:
MCU=P18F4520
_OSC_XT_1H = $00F1
_PWRT_OFF_2L = $00FF
_WDT_OFF_2H = $00FE
_MCLRE_ON_3H = $00FF
_LVP_OFF_4L = $00FB
_DEBUG_OFF_4L = $00FF
_MCLRE_ON_3H = $00FF
_LPT1OSC_OFF_3H = $00FB
_STVREN_OFF_4L = $00FE
_LVP_OFF_4L = $00FB
_XINST_OFF_4L = $00BF
_DEBUG_OFF_4L = $00FF
_LVP_OFF_4L = $00FB
_XINST_OFF_4L = $00BF
_DEBUG_OFF_4L = $00FF
_CPB_OFF_5H = $00FF
_CPD_OFF_5H = $00FF
_WRT0_ON_6L = $00FE
_WRT1_ON_6L = $00FD
_WRT2_OFF_6L = $00FF
_WRT3_OFF_6L = $00FF
_WRTB_OFF_6H = $00FF
_WRTC_OFF_6H = $00FF
_WRTD_OFF_6H = $00FF
_EBTR0_OFF_7L = $00FF
_EBTR1_OFF_7L = $00FF
_EBTR2_OFF_7L = $00FF
_EBTR3_OFF_7L = $00FF
_EBTRB_OFF_7H = $00FF

Start Program
WREG:=$84;
CMCON:=7;
ADCON0:=0;
ADCON1:=7;
ADCON2:=7;
T0CON:=$C4;
TRISA:=$FF;
TRISE:=0;
LATE:=0;
PORTE:=0;
TRISB:=0;
PORTB:=0;
TMR0L:=48;
INTCON:=$A0;

Elöre is köszönöm a segitséget.
(#) SzervízMacska válasza wangi hozzászólására (») Jún 28, 2009 /
 
Szia! Én nem sokat konyítok a picek programozásához, de ez alapján szerintem nem tud senki segíteni. Ha nem szupertitkos a projekt, esetleg tedd fel az egész forrást, de azt a részt mindenképpen, ahol a port bitjeit kapcsolgatod! Mindenesetre a leírtak alapján én RMW ( Read-Modify-Write ) hibára gondolok. Használod a LATE regisztert?
(#) varttina válasza icserny hozzászólására (») Jún 28, 2009 /
 
Azt hiszem egyből Assembly-vel fogok kezdeni. A C-nyelv valahogy sosem nyerte el a tetszésem.
(#) icserny válasza wangi hozzászólására (») Jún 28, 2009 /
 
1. Ha a PORTE biteket digitális kimenetként akarod használni, akkor le kellene tiltani az AN5, AN6, AN7 analóg bemeneteket. Ehhez az ADCON1:=7 nem jó választás (lásd az adatlap REGISTER 19-2 szekcióját).

2. Ne a PORTE, hanem a LATE bitjeit írd!
PORTE bitenkénti írása ún. read-modify-write (olvasás-módosítás-visszaírás) művelet, s a PORTE lábakról nem feltétlenül azt olvassa vissza, amit te szeretnél. A LATE használatakor viszont a kimenőregiszter bitjeit olvassa vissza, ez így korrekt eljárás.
(#) icserny válasza varttina hozzászólására (») Jún 28, 2009 /
 
Kár lenne egy nyelvre korlátozni magadat!
Következő: »»   10 / 1210
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