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   693 / 1210
(#) kt válasza Pali79 hozzászólására (») Júl 31, 2015 /
 
Igazából Ezt akartam volna megvalósítani úgy hogy ne keljen folyton leállítani meg újraindítani a Timert.
(#) usane válasza kt hozzászólására (») Júl 31, 2015 /
 
A beállítás szerint 1 us az időzítés, tehát jó (lenne ha látnánk a megszakítást is), ugyanis szerintem azt elfelejtetted, hogy a timer0 ha túlcsordul nem tölti be ujra automatikusan a számlálóba az értéket, azt neked kell, vagyis az első megszakítás után 0-ról kezd számolni, 16bites módban 65565-ig azaz FFFFh-ig és így már kb. 13ms lesz az időzítés, ami durván 77Hz ami jó szemmel valóban észrevehető vibrálás. Ha nagyon pontos időzítés kell akkor azt is figyelembe kell venni, hogy a TMR0 regiszter feltöltése 2 ciklust vesz igénybe amíg a számláló értéke nem növekszik. Ha pedig a villogást nem 80Hz körülinek látod akkor ott még más probléma is lesz.
(#) kt válasza usane hozzászólására (») Júl 31, 2015 /
 
Szia, igazad volt, nem töltöttem fel újra, most átálltam amúgy timer1 re az alábbi kóddal:
interruptban :
  1. PIR1bits.TMR1IF = 0;
  2.         PIE1bits.TMR1IE = 1;
  3. TMR1H = 142;            
  4. TMR1L = 81;


Az inicializáláskor pedig ezt használom :
  1. PIR1bits.TMR1IF = 1;
  2. IPR1bits.TMR1IP = 0;
  3. PIE1bits.TMR1IE = 1;
  4.  
  5. T1CONbits.TMR1CS = 1;
  6. T1CONbits.T1CKPS0= 0;
  7. T1CONbits.T1CKPS1= 0;
  8. T1CONbits.T1RUN = 0;
  9. T1CONbits.RD16 = 1;
  10. T1CONbits.T1CKPS0= 0;
  11.  
  12. TMR1H = 142;            
  13. TMR1L = 81;
  14. T1CONbits.TMR1ON = 1;


Már csak annyi a kérdésem , hogy a leírásban miért ír 20mHz ?
A PIC16F684 a belső oszcillátora 20mHz és nem 48mHz?
A hozzászólás módosítva: Júl 31, 2015
(#) Pali79 hozzászólása Júl 31, 2015 /
 
Olyan kérdésem lenne, hogy az SSPCON2,ACKSTAT bitjét mi állítja 1-be?
(#) cross51 válasza Pali79 hozzászólására (») Júl 31, 2015 /
 
Ha a slave-től NACK jön vissza.
(#) Pali79 válasza cross51 hozzászólására (») Júl 31, 2015 /
 
Hmmm. És ha a slave-től semmi semmi sem jön vissza? Mert mondjuk nincs is slave? Arról, hogy lehet meggyőződni, hogy a slave vette az adatot?

Szerk: az nem lehet, hogy 1-be kell állítani és törlődik, ha az adás rendben volt és visszajött az ACK jel?
A hozzászólás módosítva: Júl 31, 2015
(#) cross51 válasza Pali79 hozzászólására (») Júl 31, 2015 /
 
Ha a slave vette az adatot az ACKSTAT bit 0 lesz ha nem vette az adatot vagy nincs slave akkor az ACKSTAT 1 lesz mert nincs ami lehúzza a vonalat a 9. órajelnél.

Ha van slave és jó a slave címe többnyire ACK-ot kell kapjál, szándékosan NACK csak a mastertől a slave felé megy mikor a slave kiolvasását befejezte a master.
(#) Pali79 válasza cross51 hozzászólására (») Júl 31, 2015 /
 
Nos a Pickit2 debug szerint az adat SSPBUF-ba töltése után 1-be áll az ACKSTAT és valóban csak akkor törlődik, ha a slave elvégezte a dolgát.
Holnap éles teszt, majd meglátom, hogy valóban működik-e!
Köszönöm!
(#) BESENYII hozzászólása Aug 1, 2015 /
 
Sziasztok!
PIC 16-bites port használatánál akadtam el:
Azonos porton - itt a B port akarom a vezérlő jeleket ami 4 bit és az adatot ami 8 bit kiküldeni:
RD RB12
WR RB13
RS RB14
CE RB15 // a vezérlő bitek B port felső 4 bitje
DATA RB4 ... RB11 //DATA =x <<4 - léptetéssel helyre is teszi, de törli a port többi bitjét
Hogyan tudom egymástól függetleníteni a port bitjeit?
(#) Pali79 hozzászólása Aug 1, 2015 /
 
Tegnap este jól ment minden, kikapcsoltam, most meg be és már nem működik. A Pickit2 debug szerint sem az SSPSTAT regiszter nem változik semmit, sem a PIR1.
Akármi legyek, ha értem....
(#) Hp41C válasza BESENYII hozzászólására (») Aug 1, 2015 /
 
LATB =(x << 4) | (LATB & 0x0F);
avagy
LATB ^= ((x << 4) ^ LATB) & 0xFF0;
(#) usane válasza kt hozzászólására (») Aug 1, 2015 /
 
Most erre mit mondjak? Az aki nem tud rendes egy leírást szerkeszteni az ne publikáljon, vagy lője főbe magát? A hozzá nem értő után építők meg csodálkoznak ha valami nem megy.
Nos a kérdésre válaszolva a 16F684-nek 8MHz belső oszcillátora van, a programban szereplő 16F690-nek is, a kapcsolási rajzon szereplőnek meg csak 4MHz. Kicsit megtévesztő nem? A kapcsolási rajz nem passzol a programhoz, de még a szöveg sem egyikhez sem.Hozzáteszem, valószínűleg a 684 és a 690 konfigja hasonló, nem néztem meg
Azért van 20MHz írva mert a "szaki" 20MHz-es kvarchoz írta meg a programot.Gondolom, csak a prototipus ment belső oszcival, de lehet, hogy a 8MHz kevés volt neki, vagy nem tudta vele a megfelelő időzítéseket létrehozni, nem tudom. A config-ban látszik, hogy nem belső oszcillátorra van konfigurálva (FOSC_HS). Ennyi.
(#) BESENYII válasza Hp41C hozzászólására (») Aug 1, 2015 /
 
Köszönöm!
Ez lett a jó: LATB ^= ((x << 4) ^ LATB) & 0xFF0;
Így nem írja át a port vezérlő biteket.
Viszont ez nullázza őket:
LATB =(x << 4) | (LATB & 0x0F);
(#) Hp41C válasza BESENYII hozzászólására (») Aug 1, 2015 /
 
Elírtam:
LATB =(x << 4) | (LATB & 0x0F); helyett LATB =(x << 4) | (LATB & 0xF00F); kellett volna.
A hozzászólás módosítva: Aug 1, 2015
(#) BESENYII válasza Hp41C hozzászólására (») Aug 1, 2015 /
 
Már válogatni is tudok. Jó lett ez is.
Köszönöm!
(#) misu888 hozzászólása Aug 2, 2015 /
 
Ma használtam a pickit3-at és már estére nem volt hajlandó programozni.
2 órán át próbáltam működésre bírni de nem ment. Most nagyon fontos lenne, hogy tudjam használni.
Ezeket írja ki mlab(képek):

ennek is, meg pont most
(#) nedudgi válasza misu888 hozzászólására (») Aug 2, 2015 /
 
Valószínűsíthető, hogy a PICkit szeretne programozni, de a PIC nem hagyja magát. Ennek oka az lehet, hogy nem kap elegendő tápfeszültséget, vagy a programozó lábakat kimenetként használod, és nincs elég ideje a PICkitnek programozás módba állítani a kontrollert. Van késleltetés a program elején?
(#) Buvarruha válasza misu888 hozzászólására (») Aug 2, 2015 /
 
Ennek az az oka, nem olyan PIC van beállítva, mint amilyet programozni szeretnél. Vagy nem tudja kiolvasni a PIC azonosítóját, amit csupa 0-nak olvas, ami nem valószínű. Biztos, hogy jó az IC?
(#) Hp41C válasza misu888 hozzászólására (») Aug 2, 2015 /
 
Honnan kapja a programozandó PIC a tápot?
Az első képen olvasható hibajelzést is elolvasnám:
Idézet:
„This version of MpLab C18 does not support the Extended mode....”
(#) Buvarruha válasza Hp41C hozzászólására (») Aug 2, 2015 /
 
Amúgy a PK3-hoz nem az X kell?
(#) Hp41C válasza Buvarruha hozzászólására (») Aug 2, 2015 /
 
MpLab 8 -cal is megy.
(#) misu888 válasza Hp41C hozzászólására (») Aug 2, 2015 /
 
Már próbáltam a tápot is cserélni( pickit3,elem,szűrt táp) de úgy se jó, ezt most "csak" a demó kártyával csinálja (18f45k20).
ja nem tudok angolul,- szinte semmit
A hozzászólás módosítva: Aug 2, 2015
(#) misu888 hozzászólása Aug 2, 2015 /
 
Úgy tűnik, hogy nálam van a az elektronikai mumus, mert 18f4620-amra van egy egyszerű ledes programom és ahogy hozzáérek a fa íróasztalomhoz (azon van összerakva próbapanelon) úgy változik a led/ek fényreje. Ja meg ha megemelem a próbapanelt és visszaengedem elhalványul kb. 1 másodpercre.
tegnap egy lcd kijelzőt próbáltam hozzárakni sikertelenül, de egy ledes program se menjen
A hozzászólás módosítva: Aug 2, 2015
(#) Hp41C válasza misu888 hozzászólására (») Aug 2, 2015 /
 
A topik sárga részében leírtak betartása, különösen a táplábak bekötése, a szűrőkondenzátorok beépítésa és a MCLR láb felhúzása fontos.
(#) sonajkniz válasza misu888 hozzászólására (») Aug 2, 2015 /
 
Biztos, hogy a demokártya ehhez a PIC-hez való?
(#) misu888 válasza sonajkniz hozzászólására (») Aug 2, 2015 /
 
Biztos ezzel együtt kaptam (vettem), eddig jól működött, már jó párszor felprogramoztam az elmúlt fél évben de tegnaptól nem megy.
(#) Buvarruha válasza misu888 hozzászólására (») Aug 2, 2015 /
 
Ha 4620-at tudod programozni, ezt pedig nem, akkor meghalt az IC, előfordul.
(#) kriszrap hozzászólása Aug 3, 2015 /
 
Sziasztok ebbe a kapcsolásba :
Kapcsolás
4mhz kristály helyet használhatok 12mhzet???
Picket attól még nem kell át programozni??
(#) kissi válasza kriszrap hozzászólására (») Aug 3, 2015 /
 
Már hogyne kellene, minden működési részlete az órajelhez van kötve, szerencsétlen esetben akár el sem indul, jó esetben is sietni fog 3x-os idővel !
A hozzászólás módosítva: Aug 3, 2015
(#) Pali79 válasza kriszrap hozzászólására (») Aug 3, 2015 /
 
Használhatsz, de át kell írni az egész programot, mert az időt a 4 MHz-el számolja. Egy 12 MHz-el háromszor olyan gyorsan megy.
Következő: »»   693 / 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