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   238 / 1210
(#) Pepebá válasza icserny hozzászólására (») Ápr 11, 2012 /
 
Üdv.
Azt nem tudom hogy mitől nem 4 jegyű, de az biztos hogy ha a pBIN értéke nagyobb kétjegyűnél akkor a beírt és visszaolvasott értékként nem kapom vissza a beírt pBIN értéket, 2 jegynél viszont jól működik.

unsigned int n, dig, count=0;
unsigned int pBIN=55, pBCD=0;

for (n=0; n<4; n++) {
dig = pBIN%10;
pBIN = pBIN/10;
pBCD = (dig< count += 4;
}>>
(#) icserny válasza Pepebá hozzászólására (») Ápr 11, 2012 / 1
 
A bemásolt kódrészlet több sebből vérzik, két jegyre sem működhet. Inkább ezzel próbálkozz:
  1. unsigned int n, dig, count=0;
  2. unsigned int pBIN=1234, pBCD=0;
  3.  
  4.   for (n=0; n<4; n++) {
  5.     dig = pBIN%10;
  6.     pBIN = pBIN/10;
  7.     pBCD += dig<<count;
  8.     count += 4;
  9.   }
(#) ferkoo válasza sany hozzászólására (») Ápr 12, 2012 /
 
Szia! Szerintem itt megtalálod a választ a kérdésedre. http://www.hobbielektronika.hu/forum/topic_10172_from.html
(#) sany válasza ferkoo hozzászólására (») Ápr 12, 2012 /
 
Köszönöm!
(#) sany válasza sany hozzászólására (») Ápr 12, 2012 /
 
Most már a kimenet és bemenet kezelést megértettem .De lenne még egy problémám.Írtam egy kis programot.Azt szeretném , hogy az RB0 kimeneten a LED villogjon, és ha lenyomom egyszerre az RA0 és az RA1 bemeneteken lévő gombokat, akkor pedig a case ágban lévő kimeneti kombináció teljesüljön. De csak a LED villog, az egyszerre lenyomott gombokra nem reagál a PIC. Próbáltam már while ciklussal is megadni a feltételt, de akkor sem jó. Miért?
A nyomógombok úgy vannak bekötve , hogy lenyomva magas szinten legyenek a PIC bemeneti lábai.

  1. unsigned short kimenet(unsigned short ertek)
  2. {
  3. switch (ertek)
  4. {
  5. case 0: return 0x98;
  6. }
  7. }
  8.  
  9. void main()
  10. {
  11. TRISA=0x00;
  12. TRISB=0x00;
  13. PORTB=0x00;
  14. PORTA=0x00;
  15.  
  16.  
  17. TRISA.B0 = 1; //A0 mint bemenet
  18. TRISA.B1 = 1; //A1 mint bemenet
  19. TRISA.B2 = 1; //A2 mint bemenet
  20.  
  21. while(1)
  22. {
  23. if((porta.f0==1)&(porta.f1==1))
  24. {
  25. portb=kimenet(0);
  26. }
  27.  
  28. if else
  29. {
  30. portb.f0=0;
  31. delay_ms(500);
  32. portb.f0=1;
  33. delay_ms(500);
  34. }
  35. }
  36. }

A választ köszönöm!
(#) steev hozzászólása Ápr 12, 2012 /
 
Sziasztok!

Valaki próbált már MCP3903-at vagy valamelyik testvérét dspic30f - hez illeszteni? Valamiért nem sikerül felébresztenem, lehet hogy az oszcillátorral van a gond. Szkóppal néztem a kristály lábait (4Mhz,22pF), az egyiken ami az OSC2-höz csatlakozik 0,7V egyen fesz van, az OSC1-hez tartozón pedig 0V. Az nem tiszta, hogy az oszcillátor tápfeszre már el kell hogy induljon, vagy csak RESET után.

MCP3903 adatlap

Valakinek van ötlete? ?
(#) Pepebá válasza icserny hozzászólására (») Ápr 12, 2012 /
 
Üdv.
Igen a kódrészlet 7. sorát hibásan másoltam:
'pBCD=(dig< Arra gondolok hogy nagyon félreértek valamit. Ugyanis a helyzet a következő:
kipróbáltam olyan regiszerbe beírni és visszaolvasni az átlakított bin/BCD-t ahol 4 BCD jegyen tárol 2 jegyű bin. számot. Az én és az általad adott dekódolóval átalakított szám fordítása, tárolása, visszaolvasása jól működik.
Viszont ha olyan regiszrebe írom be ahol 4 jegyű bináris számnak kell lenni BCD formában ott helytelenül működik.
Bizonyára nem mindegy hogy a regiszter 4 vagy 2 jegyű bin/BCD számot tárol. Ezért írtam az előzőekben azt hogy nem 4 jegyű az átalakítás.>>
(#) Pepebá válasza icserny hozzászólására (») Ápr 12, 2012 /
 
Üdv.
Nem tudom a kódrészletet helyesen bemásolni, mert a szerkesztő egy bizonyos karater utáni részt levágja.
Mivel másoljátok a kódrészleteket?
(#) Balagemann2031 hozzászólása Ápr 12, 2012 /
 
Sziasztok! Kaptam egy kész áramkört (egy 7 digites óra), és írnom kell rá egyéb számláló funkciókat. A problémám ott adódott, hogy a tervezője a portokat nem logikusan használta fel, hanem a portokat vegyesen, tehát a szegmensek nem csak pl a PORTB-n vannak, hanem a = PORTB,0 b =PORTA,0 stb így. Arra gondoltam hogy két táblázatot kellene írnom egy digitnek, de szerintem okosabbak tudnak valami praktikusabb megoldást. Ha van valakinek ötlete, örömmel venném! Üdv! Balázs
(#) icserny válasza Pepebá hozzászólására (») Ápr 12, 2012 /
 
Idézet:
„kipróbáltam olyan regiszerbe beírni és visszaolvasni az átlakított bin/BCD-t ahol 4 BCD jegyen tárol 2 jegyű bin. számot.”
Én ebből semmit nem értek! A kétjegyű bináris szám az 00, 01, 10 vagy 11.
(#) Zsora válasza icserny hozzászólására (») Ápr 12, 2012 /
 
Na igen...
Nem kétjegyű hexadecimális számra (azaz 8 bites/jegyű binárisra) gondolt?

Pepebá!
Ugye tisztában vagy a számrendszerekkel?
(#) Hp41C válasza Pepebá hozzászólására (») Ápr 12, 2012 / 1
 
Szia!

A bináris 01000101 = hexa 0x45 = decimális 69.
Ha a 01000101 értéket pakolt BCD kódban kell értelmezni, akkor a decimális 45 -öt jelenti ( 0100 - 4 és 0101 - 5).
(#) Pepebá válasza icserny hozzászólására (») Ápr 12, 2012 /
 
Üdv.
Így utólag visszaolvasva enyhén szólva ég az arcom, jól összekavartam hirtelen felindulásomban szezont a fazonnal.
A számrendszerekkel még tisztában vagyok Zsola, (annyira még nem épültem le) viszont a BCD dekódolással nem.
Arról van szó hogy a PCF8593 óra regiszterei egyes adatokat BCD formában tárol. Pl. a dátum regiszter, (05 címen) alsó 4 biten napok egyesek BCD formában, 4-5 bit binárisan napok tizesek és 6-7 bit az év binárisan. Ezeket a bájtokat kell kiolvasni és módosításkor beírni, ehhez szükséges nekem a BCD kódolása.
Az idő regiszterek esetében (02,03,04 cím) jól működik a ki és visszaírás viszont a dátum (05,06 cím) esetében nem.
Az adatlap tanulmányozásával rá kellett jönnöm hogy nem a BCD dekódolása a gond, hanem az hogy az idő és a dátum regiszterek felépítése nem azonos.
(#) Pepebá válasza Hp41C hozzászólására (») Ápr 12, 2012 /
 
Üdv.
Köszi a segítséget a bináris szám pakolt BCD kódban való értelmezése sokat segített.
(#) icserny válasza Pepebá hozzászólására (») Ápr 12, 2012 / 1
 
Idézet:
„Pl. a dátum regiszter, (05 címen) alsó 4 biten napok egyesek BCD formában, 4-5 bit binárisan napok tizesek és 6-7 bit az év binárisan.”
Nagy észkombájn lehetett, aki ezt az adatszervezést kitalálta! A 4-5 bitet is tekintheted BCD-nek, csak 6-7 bitet kell előtte kimaszkolni (bitenkénti ÉS művelet, 0x3F maszkkal).
(#) adamhollos hozzászólása Ápr 12, 2012 /
 
Sziasztok!

Azt szeretném megkérdezni, hogy mire jó a Low-voltage programming?
(#) mekkmesterke hozzászólása Ápr 12, 2012 /
 
Sziasztok
Nekem szükségem lenne 1 alacsony költségvetésű de jól használható demo panelra. Honnan tölthetnék le kapcsolási rajzot. Nekem volt jó pár demo panelhez kapcsolási rajzom csak elvesztek. Előre is köszönöm a segítséget.
(#) sany válasza sany hozzászólására (») Ápr 12, 2012 /
 
Sikerült megoldanom a gombok egyszerre való kezelését.
  1. unsigned short kimenet(unsigned short ertek)
  2.     {
  3.     switch (ertek)
  4.     {
  5.     case 0: return 0x98;
  6.     case 1: return 0x55;
  7.     }
  8.     }
  9.      
  10.     void main()
  11.     {
  12.     cmcon=0x07;
  13.     TRISA=0x07;
  14.     TRISB=0x00;
  15.     PORTB=0x00;
  16.     PORTA=0x00;
  17.      
  18.      
  19.     TRISA.B0 = 1; //A0 mint bemenet
  20.     TRISA.B1 = 1; //A1 mint bemenet
  21.     TRISA.B2 = 1; //A2 mint bemenet
  22.     TRISA.B3=  0;//A3 kimenet
  23.     TRISB.B4= 0;//A4  kimenet
  24.      
  25.     while(1)
  26.     {
  27.     if(porta==0x02)//például
  28.     {
  29.     portb=kimenet(0);
  30.     }
  31.      
  32.     if else
  33.     {
  34.     portb=kimenet(1);
  35.    porta.f3=1;
  36.   porta.f4=1;
  37.     }
  38.     }

De az RA3 és RA4 -et továbbra sem kimenetként kezeli.
Kérem valaki segítsen , ha tud. Mi lehet a gond?
(#) icserny válasza adamhollos hozzászólására (») Ápr 12, 2012 /
 
Idézet:
„mire jó a Low-voltage programming?”
A nevében is benne van: alacsony feszültségű programozásra, amihez nem kell más feszültség, csak a normál tápfesz.
(#) mhatalyak hozzászólása Ápr 12, 2012 /
 
Szép estét kívánok mindenkinek!

Csak egy egyszerű kérdésem lenne(már biztosan el hangzott itt egy párszor, de sajnos nincs időm végig lapozgatni, ezért előre is elnézést kérek!) szeretnék egy PIC-es 7szegmenses 4digites fordulatszámmérőt építeni, amiben egy 16F628PIC van, találtam a neten egy égetőt, ami COM porton működik EZ AZ!.

Annyit szeretnék tudni, hogy ez az égető jó-e ehhez a PIC-hez és, hogy miért van rajta az az 5lábú csatlakozó, kell-e neki külső táp, vagy COM portról kapja? Illetve, hogy milyen programmal tudom bele égetni a HEX filet?

Előre is köszönöm a válaszokat!
mhatalyak
(#) kaqkk válasza mhatalyak hozzászólására (») Ápr 12, 2012 /
 
De itt a téma elején a sárga szöveget ha átolvasod már tudnád hogy a JDM égető ....... nem ajánlott
(#) mhatalyak válasza kaqkk hozzászólására (») Ápr 12, 2012 /
 
Igen, végig olvastam, de PICKITet már nem olyan egyszerű építeni, én meg úgy gondoltam hátha beválik .
(#) adamhollos válasza icserny hozzászólására (») Ápr 12, 2012 /
 
Úgyértem, mikor hasznos? Hisz a programmer úgyis előállítja a magasabb feszültséget, nem?
(#) kaqkk válasza mhatalyak hozzászólására (») Ápr 12, 2012 /
 
Inkább szívsz vele két három hetet , minthogy építenél egy olyat ami működik és minden picet éget ? Hát te tudod ...
(#) icserny válasza adamhollos hozzászólására (») Ápr 13, 2012 / 1
 
Az LVP lehetővé teszi, hogy olyan programozót készítsünk, ami nem kell, hogy előállítsa a magasabb feszültséget (programozás 5 szál dróttal). Csak a PIC-nél ez valahogy nem terjedt el - szemben az AVR mikrovezérlőkkel.
(#) ferkoo válasza sany hozzászólására (») Ápr 13, 2012 /
 
Üdv: Nem vagyok nagyon otthon még a pic-ben de ha jól látom ha 0 akkor output ha 1 akkor input
Idézet:
„TRISB.B3 = 0 ; // set PORTB.B3 as OUTPUT
TRISB.B4 = 0 ; // set PORTB.B4 as OUTPUT
TRISB.B7 = 0 ; // set PORTB.B7 as OUTPUT
TRISB.B0 = 1 ; // set PORTB.B0 as INPUT
PORTB.B3 = 0 ;
PORTB.B4 = 0 ;
PORTB.B7 = 0 ;”
(#) ferkoo válasza mhatalyak hozzászólására (») Ápr 13, 2012 /
 
Szia
Ha már JDM-akkor inkább a watt félét építsd meg, bár én meguntam hogy valami hiba mindig volt, elkezdtem a PK2- klónt építeni bár kissé lassan haladok vele(idő csapdába estem)
(#) Hp41C válasza icserny hozzászólására (») Ápr 13, 2012 /
 
Csak elvesztesz egy lábat - PGM...
(#) n_yálastrubadúr hozzászólása Ápr 13, 2012 /
 
Jó napot!
Pic-es hőmérős órámból szedtem ki a ds18b20 szenzort mert teljesen pontatlan volt. Kb 2' eltéréssel. A programot nem én írtam, most viszont akarok. Tanulmányoztam, de én úgy gondoltam, hogy a 64 bitet amit küld azt tudom csekkolni a gépen a logikai analizátorral, de nem. Hogyan jön a sorozat a szenzorból? -kellene valami reset?
(#) n_yálastrubadúr hozzászólása Ápr 13, 2012 /
 
Megtaláltam az első 40 lábúm, nagyon le van épülve. A Pickit2 felismeri, de ha törlöm, és visszaolvasom ezt írja ki. Azaz nem is csinál semmi bárhányszor megcsinálom. Ez a pic kuka?
Következő: »»   238 / 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