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   270 / 1210
(#) mrobi válasza aroxol hozzászólására (») Jún 22, 2012 /
 
Miért akarod használni a WDT-t? Ha kikapcsolod a WDT-t akkor menni fog a program.

Szerk.: Bővebben: Link
(#) aroxol válasza mrobi hozzászólására (») Jún 22, 2012 /
 
Akkor most on vagy off!

Nekem csak ez van:

#include




__CONFIG_CONFIG1H, B'00100011'; 010 = HS oscillator, PLL Diabled. 12MHz-ES KRISTÁLY
; Oscillator system clock switch option is disabled (main oscillator is source)
__CONFIG_CONFIG2L, B'00000110'; Brown-out Reset disabled, PWRT enabled
__CONFIG_CONFIG2H, B'00110110'; WDT on, OSZTÁS 8000 , 30mp
__CONFIG_CONFIG3H, B'10000000' ;
(#) mrobi válasza aroxol hozzászólására (») Jún 22, 2012 /
 
Hogyha használni akarod a WDT-t akkor 'on', ha nem akkor pedig 'off'.
(#) aroxol válasza mrobi hozzászólására (») Jún 22, 2012 /
 
Köszi!

És abban tudsz segiteni miért nem villogja végig a 100 és a 150mp-t? Azt csinálja hogy az elején villog kettöt, aztán meg tovább egymás után a 2 timer. Mintha a 2 ledvillogást hivnám meg elsönek.
(#) marek hozzászólása Jún 22, 2012 /
 
Sziasztok!
Egy szoftveres problémám lenne: MPLAB C18-ban szeretném használni a C-ből ismert >> bitenkénti forgató operátort egy unsigned char változón. Tehát így:
unsigned char mask = 126;
mask >> 1;
És ha követem a szoftveres debuggerben (MPLAB SIM), akkor azt tapasztalom hogy a változó értéke változatlan marad a forgatás ellenére, semmi hatása sincs a parancsnak. Van valakinek valami ötlete hogy ez mitől lehet? Vagy hogyan kell máshogy megoldani ezt a műveletet?
Üdv,
Marci
(#) matheattila válasza marek hozzászólására (») Jún 22, 2012 /
 
Szerintem próbáld inkább úgy, hogy:
mask >>= 1;
vagy
mask = mask >> 1;
mert ahogy te írtad, úgy is elvégzi a léptetést viszont nem adtad meg, hogy utána hova mentse, így legfeljebb a munka regiszterben marad
(#) icserny válasza aroxol hozzászólására (») Jún 22, 2012 /
 
Az a baj, hogy a programrészletből az sem látszik, hogy hol indul (te nyilván tudod), az sem derül ki, hogy mit is akarsz valójában (másodperces nagyságrendő időközönként le- vagy felkapcsolni a LED-et? Ez nem kifejezetten fedi a villogtatás fogalmát).

Azt sem értem, hogy ha CALL-lal hívod meg a LEDVILLOGO eljárást (ha ez eljárás akar lenni), akkor annak miéert nincs RETURN a végén? Hogy fog az visszatérni?
(#) marek válasza matheattila hozzászólására (») Jún 22, 2012 /
 
Teljesen igazad van, kipróbáltam, működik, zseniális vagy! Tényleg örülök neki, mert nagyon bosszantott a dolog. (Bár eszembe jutott hogy kettővel való szorzással ill. osztással tudom orvosolni a bajt, de így elegánsabb) Köszönöm a segítséget!
(#) beigli767 hozzászólása Jún 22, 2012 /
 
Sziasztok!

Én egy fűtésautomatizálás projekten dolgozok. A részletekbe nem mennék bele, mert a kérdésem szempontjából nem lényeges. Megcsináltam egy (nem hivatalos) kapcsolási rajzot az általam elképzelt áramkörről. A kérdésem az lenne, hogy az SN75176 -os IC ami az RS-485-ös adatátvitelre szolgál majd egy másik PIC mikrokontrollerrel, és az RJ-45 ös hálózati csatlakozó bekötése helyes-e? Amúgy a képen egy PIC18F67J60-as mikrokontroller látható. Aminek az adatlapja ezen a linken érhető el: adatlap

Válaszaitokat előre is köszönöm!

központ.jpg
    
(#) aroxol hozzászólása Jún 23, 2012 /
 
Sziasztok!

Kicsit elörébb jutottam, igy müködik is csak elég hülyén néz ki. Le lehet az ismétléseket röviditeni?


BTFSS INPUT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
(#) mrobi hozzászólása Jún 23, 2012 /
 
Végtelen ciklusra lenne szükséged vagy megvan hogy hányszor kellene ismétlődnie?
(#) kissi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Szia!

Persze, csak ciklust kell rá szervezni ( mint a késleltetésben csináltad ! ), DECFSZ utasítást nézegesd meg !

Steve
(#) aroxol válasza mrobi hozzászólására (») Jún 23, 2012 /
 
Nem végtelen, ciklusonként (több lesz) pl. 1 ciklus 45mp. pl 10 timer, a következö 15mp. 5 timer. Egy folyamatosan gyorsulo led lesz.
(#) mrobi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Nézd meg ezt az oldalt!
Itt kitudod választani, hogy melyikre van szükséged!
(#) aroxol válasza kissi hozzászólására (») Jún 23, 2012 /
 
Szia!

Köszi, nézem, de nem sokat értek belölle.
(#) kissi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Szia!
Idézet:
„Egy folyamatosan gyorsulo led lesz.”


Válassz egy alapidőt és azt mondd meg egy változóval, hogy hányszor !

pl.


  1. MOVLW  5
  2.            MOVWF  VALTOZO
  3.            CALL   KESL
  4.            ;
  5.            ;
  6. KESL:
  7.           CALL   DELAY_1S
  8.           DECFSZ   VALTOZO
  9.           GOTO KESL
  10.           RETURN


Ez így egy 5 s-os késleltetés lesz ( a változtatáshoz csak a VALTOZO értékét kell változtatni!) és szerintem a ciklusaidat is lehet hasonóan szervezni!

Steve
(#) mrobi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Itt a 26. oldalon találsz információt a DECFSZ utasításról!
(#) aroxol válasza kissi hozzászólására (») Jún 23, 2012 /
 
Szia!

Ne haragudj, egy kicsit nehézkes számomra, elég kezdö vagyok pic terén.
(#) kissi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
[OFF]
Szia!

Idézet:
„Ne haragudj”

Nem haragszom !

Ha már megnézted 5x és még mindig nem érted, akkor írd le, hogy mi nem világos!

A viccet félretéve: sokat kell olvasni és használd az MPLAB szimulátorát, amiben láthatod, hogy mi történik belül!
Hidd el, hogy így lehet tanulni, az eleje nagyon "nyögvenyelős", de ha megérted, akkor a többi információ is fog Rád "ragadni", ill. fogod tudni az adatlapokat használni ( én is, mint gyakorló programozó, még sokat tesztelgetek, mert a feladatok soha nem egyformák :yes: !) !

Ne add fel a "csüggedést", hanem olvass sokat !

Steve
(#) aroxol válasza kissi hozzászólására (») Jún 23, 2012 /
 
Sok minden nem világos, rajta vagyok, soronként próbálom értelmezni, de minden sorra másik 10 van. Nem azt várom hogy valaki megírja, de szerintem egy felkommentál (magyarul érthető nyelven) program részből is sokat lehet tanulni. Olyasmi mint elsőben, előbb tanuld meg az összes betűt, utána már lehet írni. Mplab Sim próbálom, de mit kellene nézni? A netet már átkutattam hogy hol lehet használatáról magyarul infót találni, eddig nem sikerült. Tanulásképp ezt is megpróbáltam, a led nem villog, program fut, nincs hiba. Na ez tudja bosszantani az embert.
(#) mrobi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Az előző lapon belinkeltem egy oldalt. Ott az összes assembly parancs működése le van írva. Azokat szerintem nézd át (fogd fe úgy mint ha azok lennének a betűk) .

MPlab-hoz pedig itt egy leírás: Bővebben: Link
(#) aroxol hozzászólása Jún 23, 2012 /
 
Akkor már csak egy kérdésem lenne, ha BTFSS INPUT al inditom el hogy tudom a folyamatot leállitani ha BTFSC INPUT ?

BTFSS INPUT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BSF LED
CALL TIMER_1MP
BCF LED
(#) mrobi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
BTFSS parancs annyit csinál hogyha az INPUT 1 akkor átugorja a következő sort.
Tehát ha az INPUT-od 1 akkor a 'BSF LED' sort átugorja.
(#) aroxol válasza mrobi hozzászólására (») Jún 23, 2012 /
 
Tehát ha igy csinálom akkor megszakítja a folyamatot ha az input átmegy 0-ba

BTFSS INPUT
BSF LED
CALL TIMER_1MP
BCF LED
CALL TIMER_2MP
CLRWDT
BTFSC INPUT ;itt megszakitja
BSF LED
BTFSC INPUT ;itt megszakitja
CALL TIMER_1MP
BTFSC INPUT ;Tehát akkor itt megszakitja
BCF LED
(#) mrobi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Az a baj hogy ezekből a kis kódrészletekből nem sok mi derül ki. Ha elmondanád hogy mit kellene csinálni akkor többet tudnánk segíteni.
Végül is amit beraktál megszakítja. Csak lenne jó tudni hogy mi van az utolsó 'BCF LED' után.
(#) aroxol válasza mrobi hozzászólására (») Jún 23, 2012 /
 
Input bemegy, (láb lehúz) led elkezd villogni timer-er és a sorokkal összehoztam 45mp-ig egy sebességgel, utána 15mp.ig gyorsabban villog. Megszakitani a folyamatot (Input elenged) bármikor tudjam. Kb ennyi.
(#) mrobi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Írtam egy kis programot. Én így oldanám meg.
Szerk.: A beállításokat, késleltetéseket neked kell már beállítani. Ebből igazából a főprogram ami neked fontos!

szamlal.asm
    
(#) aroxol válasza mrobi hozzászólására (») Jún 23, 2012 /
 
Köszönöm, holnap kiprobálom, mára már elég volt.
(#) kissi válasza aroxol hozzászólására (») Jún 23, 2012 /
 
Szia!

Nem szabad ilyen gyorsan haladni, amíg nem érted a közbenső lépéseket! Többször leírtuk már, de Neked mégegyszer:
1.program: 1 LED bekapcsolása mindenféle Ny nélkül!
2. program: 1 LED bekapcsolása NY-al!
3. program: 1 LED kikapcsolása NY-al!
4. program: 1 LED villogtatása!
5. program: 2 LED ellenfázisban villogtatása!
6. program: LED be-ki NY-ra !
és így tovább...
Ha ezek szerint haladsz, mindegyiket le is szimulálva, akkor már sokat fogsz tudni a PIC működéséről és akkor kell bonyolítani ( eltérő időzítések, hosszabb-rövidebb gombnyomás, 7 szegmenses, LCD, AD, soros port, stb. !) !

Ne sértődj meg, de a mostani módszered szerintem olyan, mintha tudnál vezetni Trabantot és ezen felbuzdulva repülőgépet akarnál irányítani ( hiszen még az alapjaival sem vagy tisztában! ): beleírsz a programba, közben meg nem érted teljes mértékben amit eddig írkáltál !

Steve
(#) vbbarnus hozzászólása Jún 24, 2012 /
 
Sziasztok! új vagyok még a fórumon de már sokszor olvastam,de még csak most regisztráltam.nekem olyan kérdésem lenne,hogy pic16f84 re irt ASM-et átírtam pic16f628A-ra szimulátorban működik is de mplab azt írja hogy (Use of this instruction is not recommended.)Használata az utasításnak nem ajánlott. Erről lenne szó:tris utasítás probáltam ezt:BSF status, Rp0,movlw 0x00,movwf TRISB,BCF állapot, Rp0 igy igy a kimenetek működnek de a bemenet nem reagál.ez egy 5 fázisú léptető motor vezérlése lenne.ha valaki tudna segíteni ebben nagyon megköszönném!még egy kérdés asm -et felraktam hozzá. ez csak egy részlet ;; 333 : _trisa_flush
goto _2764__vector
e_2894_put: ; 0110
_2785__vector: ; 0110
p_2785__trisb_flush: ; 0110

;; 305 : bank movfw trisb
movf H'2F',w

;; 306 : tris 6
tris H'06'
e_2785__trisb_flush: ; 0112
return
_2764__vector: ; 0113
p_2764__trisa_flush: ; 0113

;; 298 : bank movfw trisa
movf H'2E',w

;; 299 : tris 5
tris H'05'
e_2764__trisa_flush: ; 0115
return

END

628 asm 1.asm
    
Következő: »»   270 / 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