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   1212 / 1212
(#) wincso válasza tki hozzászólására (») Márc 9, 2025 /
 
A projektből küldtem a fájlokat , csak egy szük kodrészletet tettem fel mert ott a bajom, a bánatom ugyanaz , hogy a pic által mért adatokat nem tudom megjeleníteni a weboldalon, max lehet rosszul írtam le.
Nagyon köszönöm az eddigi segítséget.
(#) glaci hozzászólása Csü, 11:36 /
 

12f683

Sziasztok!
pic12f683 picet használok. A GPIO5 lábat kimenetként szeretném használni, de nem akar kimenetként működni. Igazából lóg a levegőben. A mainban lehet, hogy hiányzik valami.
  1. void main()
  2. {
  3.   OPTION_REG         = 0x82;      //megszakítás a felfutó élnél,  előosztás 1/8
  4.   TMR0=255;
  5.   // IOC= 9;           // megszakítás engedélyezés a 0,3 bemeneteken
  6.   // INTCON=0b11001000;  //GIE és GPIE bitek engedélyével a perifériás megszakítás engedély
  7.  
  8.   INTCON=0b11101000;
  9.   /* INTCON.GIE=1;  //globális megszakítás engedély
  10.    INTCON.PEIE=1;  //perifériás megszakítás engedély
  11.    INTCON.T0IE=1;  //timer0 tulcsordulás megszakítás engedély
  12.                     //A T0IF lábat törölni kell megszakítás után
  13.    INTCON.GPIE=1;  //az input-output lábakon történő változás okozta megszakítás engedély
  14.                     //A GPIF lábat törölni kell megszakítás után  */
  15.    OSCCON=0b01110001;   // 8mhz belső oszcillátor
  16.    CMCON0=7;         //komparátor kikapcsolva
  17.  
  18.    ANSEL=0;          //analóg csatornák kikapcsolva
  19.    //         543210
  20.    //TRISIO=0b00001001;    // 0,3 láb bemenet
  21.    TRISIO=0x9;
  22.    GPIO=0;
  23.    GPIO.GP5=1;
  24.    figyel=0;
  25.    delay_ms(500);
(#) majkimester válasza glaci hozzászólására (») Csü, 11:48 /
 
A configuration bits-ben az oscillátor INTOSCIO-ra van állítva?
(#) glaci válasza majkimester hozzászólására (») Csü, 12:16 /
 
Szia! Ezt hol tudom állítani?
(#) majkimester válasza glaci hozzászólására (») Csü, 12:44 /
 
Fordítótól függően, például a config macroval:
  1. __CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & BOREN_OFF);

vagy pragma-val:
  1. #pragma config FOSC = INTOSCIO
(#) glaci válasza majkimester hozzászólására (») Csü, 13:21 /
 
Microc-ben programozok. Abban a macro ugye jó?
(#) majkimester válasza glaci hozzászólására (») Csü, 14:39 /
 
Ott nem tudom mi van, a fentiek xc8-ban használhatóak.
(#) wincso válasza glaci hozzászólására (») Csü, 15:05 /
 
A microc Ben az osszcilátort a projekt tulajdonságoknál modosítható ,bvalamint az osscon és osctune byteok helyes beállításával.
(#) Lali67 hozzászólása Pé, 21:59 /
 

GY21 cím kiolvasás

Nagyon régen programoztam PicbasicPro-ba és most kellene egy páratartalom mérő amihez GY21-et választottam de nem tudok még címet sem kiolvasni, 20Mhz -en 16f877-t használok. Mit csinálok rosszul? Valaki tudna segíteni?
DEFINE OSC 20
DEFINE I2C_SLOW 1

SDA VAR PORTB.4
SCL VAR PORTB.0
TRISB.4 = 1
TRISB.0 = 1
OPTION_REG.7 = 0

address VAR BYTE
ack VAR BYTE
found VAR BYTE

LCDOUT $FE, 1, "I2C kereses..."
PAUSE 1000

found = 0

FOR address = $08 TO $7F '
I2CWRITE SDA, SCL, address, 0, ack
IF ack = 0 THEN
found = 1
LCDOUT $FE, $C0, "Cim: ", HEX2 address
PAUSE 2000
ENDIF
NEXT address

IF found = 0 THEN
LCDOUT $FE, $C0, "Nincs eszkoz!"
ENDIF

END
(#) KoblogPerGyok válasza Lali67 hozzászólására (») Kedd, 15:29 /
 
Szia!

Ehhez a programhoz nem értek, de nem világos minden nekem. Van logikai analizátorod? Az sokat segít ilyen esetben.

De ha a PIC a master, és az adja ki az órajelet is, akkor annak a lábnak nem digitális kimenetnek kell lennie? Mert mintha most input lenne.

IGEN, tévedtem, azok jók, bocsánat!

De persze tévedhetek is, mert itt van ez:
I2CWRITE
Lehet ez a függvény beállít mindent, bár nem tudom hogy ebben a környezetben ez a lib hogy van meghívva.
Illetve nem tudom, hogy minden regisztert beállít-e ez a függvény vagy sem.

Nem lehetne C-ben? Mplab X-el megoldani a problémát?
A hozzászólás módosítva: Kedd, 15:31
(#) KoblogPerGyok válasza Lali67 hozzászólására (») Kedd, 15:36 /
 
Mert elvileg itt egy jó leírása az egésznek, amiben kódok is vannak. A .h fájlokat meg kell csinálni és utána include-al berántani. A keresést meg ciklusba tenni.

Bővebben: Link
Következő: »»   1212 / 1212
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