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   505 / 1224
(#) KaiserA válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
Szia!
Köszönöm szépen a segítséget!

Adrián
(#) n_yálastrubadúr hozzászólása Márc 28, 2014 /
 
Sziasztok!
A saját Propeller clockom fejlesztem (még mindig) . Én az RB0 át eddig infra megszakításra használtam, most is szeretném. Az lenne a kérdésem, hogy melyik lábbal tudom a megoldani a kör érzékelést. A B-port az kizárva. A komparátoron gondolkoztam, ezzel a modullal még nem foglalkoztam. De bármilyen megoldás érdekel.
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Márc 28, 2014 /
 
A komparátoron kívül még az bemeneti állapotfigyelő (IOC) jöhet szóba, ha felhasznált típuson nem csak a B porton van.
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
16F887 ről van szó. Restellem de az IOC-t nem is hallottam eddig. Eddig bármilyen infrát írtam mindig tmr0 számolt az rb0 -án volt a jel. Most tmr1 méri a köridőt az rb0-án. Tmr0 méri a'rendes' időt. Valósznűleg tmr2 fogja nézni az infra impulzusok idejét. Tehát nekem az rb0-hoz hasonló működésű dolog kellene. Igazából le vagy felfutó élre megszakít és impulzus időt mér.Egyébként van arra valamilyen trükk, hogy a Propeller clock-nál, a számítgatások, megszakítások (infrák) ne látszódjanak egyáltalán bele a kijelzésbe?
A hozzászólás módosítva: Márc 28, 2014
(#) n_yálastrubadúr válasza n_yálastrubadúr hozzászólására (») Márc 28, 2014 /
 
Jó, az IOC megvan: interrupt on change pin. De ez bármelyik lábra igaz?
(#) vicsys válasza n_yálastrubadúr hozzászólására (») Márc 28, 2014 /
 
Az adatlapján jelölik.
(#) n_yálastrubadúr válasza vicsys hozzászólására (») Márc 28, 2014 /
 
Igen. Kicsit figyelmesebben nézve világosan ott van a táblázatban és láttam is már Tehát ha változásra megszakít, akkor tulajdonképpen pl: infra 1-->0 -ra , megszakít. Itt itt lévő program gyorsabban lefut mint maga a jel váltana, tehát még 0 ban vissza is tér, majd újra 1-re ismét megszakít?
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Márc 28, 2014 /
 
A16F88x -ben csak a B porton van, de pl. a 16F1713, 16F1716, 16F1717, 16F1718, 16F1719 esetében van már az A, B C, E portokon is.
A hozzászólás módosítva: Márc 28, 2014
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
Igen, nézegetm az adtlapot és úgy tűnik a komparátor marad. Ott változás esetén van megszakítás. Tehát be tudom úgy állítani, hogy pl 0 esetén megszakít?
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Márc 28, 2014 /
 
Az adatlap 8-2 ábrája szerint minden változás a komparátor kimenetén megszakításkérést okoz.
Miért kizárt a RB0 - INT használata?
A hozzászólás módosítva: Márc 28, 2014
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
Igazából, lehet hogy az infra lesz az RB0-án. És a helyzet érzékelő lesz máshol. Csak a komparátort nem használtam nemtudom pl ha az infra vált 1->0-ra vagy fordítva a tranziensek nem szagattják e meg a programot.
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Márc 28, 2014 /
 
A fórumon található 8 bites PIC kontrolleres rotor programok két megszakítást kezelnek: a forgásérzékelőt az RB0 - INT lábon és a timer2 -ét. A két megszakítás nem zavarja egymást.
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
Akkor az infrát(távirányító) megszakításon kívül kezelik?
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Márc 28, 2014 /
 
A timer2 megszakításából...
(#) KaiserA válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
Szia!

Már csak az nem stimmel, hogy Temperature = (képlet)
sorokhoz azt írja errornak hogy expecting a close paren.
Mit jelent?

Köszönön szépen, az eddigi segítséget.

Adrián
(#) Hp41C válasza KaiserA hozzászólására (») Márc 28, 2014 /
 
Egy csukó zárójelet hiányol, de egy nyitót kell csak törölni:
Temperature = 256.0 - ((float)(UpperByte x 16 + LowerByte) / 16.0);
(#) KaiserA válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
Valamiért, még mindig ezt írja ki.
(#) Hp41C válasza KaiserA hozzászólására (») Márc 28, 2014 /
 
Másold be ide a programrészletet.
(#) KaiserA válasza Hp41C hozzászólására (») Márc 28, 2014 /
 
  1. while(1)
  2.                                         {      
  3.                      
  4.                                             i2c_start();
  5.                                             i2c_write(SLAVE_ADDRESS);
  6.                         i2c_write(0x05);
  7.                         i2c_start();
  8.                         i2c_write(SLAVE_ADDRESS | 0x01);
  9.                         fogadottadat=i2c_read(0);
  10.                         fogadottadat2=i2c_read(1);             
  11.                         i2c_stop();
  12.  
  13.  
  14.                         lcd_putc("\f");
  15.  
  16. //             
  17.                         sprintf(felsosor,"ertek: %lu" ,fogadottadat);
  18.                         sprintf(alsosor,"ertek: %lu" ,fogadottadat2);
  19.                                                
  20.         //Convert the temperature data
  21. //First Check flag bits
  22. if ((fogadottadat & 0x80) == 0x80){ //TA >= TCRIT}
  23. if ((fogadottadat & 0x40) == 0x40){ //TA > TUPPER}
  24. if ((fogadottadat & 0x20) == 0x20){ //TA < TLOWER}
  25. fogadottadat = fogadottadat & 0x1F; //Clear flag bits
  26. if ((fogadottadat & 0x10) == 0x10){ //TA < 0°C
  27.     fogadottadat = fogadottadat & 0x0F; //Clear SIGN
  28.                         Temperature = 256.0 - ((float)(fogadottadat x 16 + fogadottadat2) / 16.0);
  29. }else //TA >= 0°C
  30.  
  31.  
  32.                                 Temperature = ((float) (fogadottadat x 16 + fogadottadat2)/ 16.0);
  33.                                                                
  34.  
  35.                        
  36.                
  37.                                                                         a=0;                                                                           
  38.                                                                         while(a<=16)                                                   
  39.                                                                                 {
  40.                                                                                 lcd_putc(felsosor[a]);                         
  41.                                                                                 a++;                                                           
  42.                                                                                 }
  43.                        
  44.                                                                         lcd_putc("\n");
  45.                                                                         a=0;                                                                           
  46.                                                                         while(a<=16)                                                   
  47.                                                                                 {
  48.                                                                                 lcd_putc(alsosor[a]);                                  
  49.                                                                                 a++;                                                                   
  50.                                                                                 }


mint a két egyenletnél errort ír.
(#) zenetom válasza KaiserA hozzászólására (») Márc 28, 2014 /
 
Szia!
  1. Temperature = 256.0 - ((float)(fogadottadat x 16 + fogadottadat2) / 16.0);

A "x" jelnek mi a szerepe?
(#) KaiserA válasza zenetom hozzászólására (») Márc 28, 2014 /
 
Szia!
* akar lenni, most már jo a szintaktika.
Köszönöm!!!!!
(#) KaiserA hozzászólása Márc 28, 2014 /
 
Köszönöm a segítséget!!
(#) zenetom válasza KaiserA hozzászólására (») Márc 28, 2014 /
 
Írni akartam, hogy más kell oda, de akkor sikerült rávezetni.
(#) elektros90 hozzászólása Márc 28, 2014 /
 
Sziasztok! Az Attila féle pic-es panelmérő pic-jét (18F2523) szeretném felprogramozni PICKit 3-al. Tehát telepítettem az MPLAB X v2.05 öt. Elindítottam az MPLAB IPE-t. Csatlakoztattam a kitet az ICSP kivezetésekhez. Kiválasztottam a pic tipusát, aztán tettem, hogy Connect. Hibát ír ki, hogy Connection Failed! Próbáltam úgyis, hogy külső feszültséggel tápláltam a herkentyűt és úgyis, hogy bepipáltam, hogy power target circuit from tool. Ebben az esetben nem kapcsoltam rá külső tápot.
Mivel lehet gond? Továbbá megvan a PICkit 3 programmer tool Beta. Abban azt írja, hogy PICkit3 not connected. Egyébként Windows 8 64Bit ről fut.
A hozzászólás módosítva: Márc 28, 2014
(#) ktamas66 válasza elektros90 hozzászólására (») Márc 28, 2014 /
 
A D1 dióda miatt a Pickit3 nem érzékeli a tápot.
(#) elektros90 válasza ktamas66 hozzászólására (») Márc 28, 2014 /
 
Akkor tegyek helyébe átkötést? Ha power target módban van, akkor működnie kellene, nem?
(#) ktamas66 válasza elektros90 hozzászólására (») Márc 28, 2014 /
 
Tapasztalatom szerin a Pickit3 a külső tápot szereti. Lehet nem is tudná meghajtani a panelmérőt. Igen, tegyél be egy átkötést.
A hozzászólás módosítva: Márc 28, 2014
(#) fotomen32 hozzászólása Márc 28, 2014 /
 
Sziasztok
Nem tudom jó helyen járok e?
Szeretnék egy nixi csöves órát építeni pic16f628-al DS1307-el és HV5122 ickkel.
A kapcsolást én terveztem már több mint 20 éve foglalkozom elektronikával de
sajnos a szoftveres részéhez nem értek,a program megírása számomra egy teljesen kínai dolog.
Valaki tudna nekem programot írni a hardveremhez?
(#) elektros90 válasza ktamas66 hozzászólására (») Márc 28, 2014 /
 
Szia. XP-re telepítettem a 8.7es verziót. Első lépésként lefrissítte a FW-t, azóta megy a pickit3 programmerrel. Ha bepipálom a target powert akkor talán fel is programozza. Azért írom, hogy talán, mert azt írja, hogy programing device... done. Aztán ha visszaolvasom, akkor már 0000 0000 0000 0000 ....
(#) elektros90 válasza elektros90 hozzászólására (») Márc 28, 2014 /
 
Van egy olyan érzésem, hogy Attila bekapcsolt rajta valami védelmet, hogy ne lehessen visszaolvasni. Már működik a win8 on is mindkét programmal. Viszont még valami nemjó, mert a display felén 2 sorban kockák vannak, amik elhalványodnak a másik oldala meg üres. De ez már más topic.
Következő: »»   505 / 1224
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