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   144 / 1210
(#) dudzsi válasza doup hozzászólására (») Okt 15, 2011 /
 
Szia!
Csak egy kérdés, ha mind a két lehetöségnél PORTA.B0 = 1 akkor nem lehet hogez a kikapcsolása a ventilátornak? Vagy két ventilátor van? Vagy olyan a rellé aminek csak egy impulzus kell?
(#) doup válasza dudzsi hozzászólására (») Okt 15, 2011 /
 
Ezt csak azért írtam bele hogy megnézzem a temp változó amiben tárolom a kiolvasott értéket mit tartalmaz!
De mivel nem kapcsol be a venti így fogalmam sincs mi lehet benn!
(#) doup válasza doup hozzászólására (») Okt 15, 2011 /
 
http://www.mikroe.com/eng/chapters/view/17/chapter-4-examples/

Ennek a példának az alapján én is megcsináltam de sajna így sem mér semmit mindig 0 fokot jelez ha be van dugva a ds18b20 ha nincs. valakinek van ötlete?
(#) vicsys válasza doup hozzászólására (») Okt 15, 2011 /
 
Igen. A DS18B20 nem fog menni a DS1820 helyén. Ahogy nézem, a program sima DS1820-ra van írva.
(#) doup válasza vicsys hozzászólására (») Okt 15, 2011 /
 
És ezt miből állapítottad meg?
(#) vicsys válasza doup hozzászólására (») Okt 15, 2011 /
 
Az adatlapjából. Nézd meg mindkettő felbontását.
(#) doup válasza vicsys hozzászólására (») Okt 15, 2011 /
 
Valóban különbözik még csak ez az első próbálkozásom ilyesmivel. Remélem sikerül megcsinálnom.
(#) doup válasza doup hozzászólására (») Okt 15, 2011 /
 
Valaki tudna segíteni mit kell átírni a progiban mert a progi ds1820 hőmérő szenzorra van megírva viszont én csak ds18B20 hőmérő szenzort kaptam. Nagyon kezdő vagyok még az ilyesmiben remélem azért valaki segít. A PIC az 16f818
  1. /*Header******************************************************/
  2.  
  3. // LCD module connections
  4. sbit LCD_RS at RB4_bit;
  5. sbit LCD_EN at RB5_bit;
  6. sbit LCD_D4 at RB0_bit;
  7. sbit LCD_D5 at RB1_bit;
  8. sbit LCD_D6 at RB2_bit;
  9. sbit LCD_D7 at RB3_bit;
  10. sbit LCD_RS_Direction at TRISB4_bit;
  11. sbit LCD_EN_Direction at TRISB5_bit;
  12. sbit LCD_D4_Direction at TRISB0_bit;
  13. sbit LCD_D5_Direction at TRISB1_bit;
  14. sbit LCD_D6_Direction at TRISB2_bit;
  15. sbit LCD_D7_Direction at TRISB3_bit;
  16. // End LCD module connections
  17.  
  18. const unsigned short TEMP_RESOLUTION = 9;
  19. char *text = "000.0000";
  20. unsigned temp;
  21.  
  22. void Display_Temperature(unsigned int temp2write) {
  23.     const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
  24.     char temp_whole;
  25.     unsigned int temp_fraction;
  26.  
  27.     // check if temperature is negative
  28.     if (temp2write & 0x8000) {
  29.         text[0] = '-';
  30.         temp2write = ~temp2write + 1;
  31.     }
  32.     // extract temp_whole
  33.     temp_whole = temp2write >> RES_SHIFT ;
  34.  
  35.     // convert temp_whole to characters
  36.     if (temp_whole/100)
  37.         text[0] = temp_whole/100 + 48;
  38.     else
  39.         text[0] = '0';
  40.  
  41.     text[1] = (temp_whole/10)%10 + 48; // Extract tens digit
  42.     text[2] = temp_whole%10 + 48;      // Extract ones digit
  43.  
  44.     // extract temp_fraction and convert it to unsigned int
  45.     temp_fraction = temp2write << (4-RES_SHIFT);
  46.     temp_fraction &= 0x000F;
  47.     temp_fraction *= 625;
  48.  
  49.     // convert temp_fraction to characters
  50.     text[4] = temp_fraction/1000 + 48;     // Extract thousands digit
  51.     text[5] = (temp_fraction/100)%10 + 48; // Extract hundreds digit
  52.     text[6] = (temp_fraction/10)%10 + 48;  // Extract tens digit
  53.     text[7] = temp_fraction%10 + 48;       // Extract ones digit
  54.  
  55.     // Display temperature on LCD
  56.     Lcd_Out(2, 5, text);
  57. }
  58.  
  59. void main() {
  60.     Lcd_Init();   // Initialize LCD
  61.     Lcd_Cmd(_LCD_CLEAR);      // Clear LCD
  62.     Lcd_Cmd(_LCD_CURSOR_OFF); // Turn the cursor off
  63.     Lcd_Out(1, 1, " Temperature: ");
  64.  
  65.     // Print degree character, 'C' for Centigrades
  66.     Lcd_Chr(2,13,223);        // different LCD displays have different char code for degree
  67.     // if you see greek alpha letter try typing 178 instead of 223
  68.  
  69.     Lcd_Chr(2,14,'C');
  70.  
  71.     //--- main loop
  72.     do {
  73.         //--- perform temperature reading
  74.         Ow_Reset(&PORTA, 2);       // Onewire reset signal
  75.         Ow_Write(&PORTA, 2, 0xCC); // Issue command SKIP_ROM
  76.         Ow_Write(&PORTA, 2, 0x44); // Issue command CONVERT_T
  77.         Delay_us(120);
  78.         Ow_Reset(&PORTA, 2);
  79.         Ow_Write(&PORTA, 2, 0xCC); // Issue command SKIP_ROM
  80.         Ow_Write(&PORTA, 2, 0xBE); // Issue command READ_SCRATCHPAD
  81.         temp = Ow_Read(&PORTA, 2);
  82.         temp = (Ow_Read(&PORTA, 2) << 8) + temp;
  83.  
  84.         //--- Format and display result on Lcd
  85.         Display_Temperature(temp);
  86.         Delay_ms(500);
  87.     } while (1);
  88. }
  89. }
(#) doup hozzászólása Okt 15, 2011 /
 
Egy 16f877a picet szeretnék belőni de sajna nem sikerül.
A kapcsolást e szerint kötöttem be http://physicom.digick.jp/wp-content/uploads/pic16f877a-icsp-led4.gif
de sajna folyamatosan minden lábon 4.5V van jelen.

Valaki tudja miért?
(#) kissi válasza doup hozzászólására (») Okt 16, 2011 /
 
Konfigurációs bitek, 100 nF a táplábakra, RESET megoldás ( elengedted-e a PK2-vel RESET-ből ? ), program: egy csomó bizonytalansági tényező --> jobban add meg, hogy mit csináltál, mert így nem lehet csak általánosságokat mondani ( annak érdekében meg olvasd át az 1000 oldalt! !

Steve
(#) Hp41C válasza doup hozzászólására (») Okt 16, 2011 /
 
Szia!

Idézet:
„de sajna folyamatosan minden lábon 4.5V van jelen”


A méréseket az ICSP csatlakozó föld pontjához képest mérted?
A pic 12. és 31. lába (valamint a kerámia rezonátor föld kivezetése és a led -ek közös pontja) nincs összekötve az ICSP földjével. A föld szimbólummal ellátott vezetékeket is össze kell kötni. A rajzról hiányzik a táp és a föld közötti 100nG kerámia kondenzátor.
(#) trudnai válasza doup hozzászólására (») Okt 16, 2011 /
 
Minden labon?! Tehat a Vss-en is 4.5V-ot mersz a foldponthoz kepest? Mert akkor ott valami vagy el van kotve vagy rovidzaras!
(#) c3overload hozzászólása Okt 16, 2011 /
 
Sziasztok.
Szeretnék kérdezni egy valószinüleg óriási baromságot:
egy 16f628 -ast kellene felprogramoznom egy ismerősnek , de a forrást hi-tech c ben kaptam meg.
Egyenlőre csak a .hex fájlokkal tudok boldogulni.
Tud valaki segíteni esetleg átfordításban nekem, vagy útbaigazításban? Hi-tech c lite fent van , mplab és pickit2 starter programozóm usb-n.

Előre is köszi.
(#) Norberto válasza kissi hozzászólására (») Okt 16, 2011 /
 
Idézet:
„annak érdekében meg olvasd át az 1000 oldalt”


Ez nem az a topik.

A kezdők és a haladók topikját felcserélték.

Csak elfelejtettek szólni a nagyközönségnek erről, szokás szerint...

Így itt csak 145 átolvasnivaló oldal van.

A mondandód tartalmával viszont teljesen egyetértek.
(#) vicsys válasza Norberto hozzászólására (») Okt 16, 2011 /
 
Idézet:
„Csak elfelejtettek szólni a nagyközönségnek erről, szokás szerint...”
Mivel a nagyközönség nagyrésze el tudja olvasni a topic címét. (Mellesleg ez volt az itt válaszadók kérése.)
(#) Norberto válasza vicsys hozzászólására (») Okt 16, 2011 /
 
...
(#) doup hozzászólása Okt 16, 2011 /
 
Sziasztok, eddig mindig olyan pic-et használtam ami rendelkezett belső kvarccal. Viszont most jelenleg nincs csak egy 16f84a pic-em itthon. Szeretném életre kelteni.
A kapcsolás csatoltam. Aki csinált már ilyet nézze már meg hogy megfelelően van e bekötve?
Illetve milyen config biteket kell beállítani kell?
Előre is köszönöm a segítséget.

16F84A.png
    
(#) watt válasza doup hozzászólására (») Okt 16, 2011 /
 
Éppen az imént írták le, mi kell még oda! Én olvastam, te nem?
(#) doup válasza watt hozzászólására (») Okt 16, 2011 /
 
Nem olvastam mivel ez egy jóval kisebb PIC és gondolom nem ugyan úgy kell.
(#) watt válasza doup hozzászólására (») Okt 16, 2011 /
 
De...
(#) doup válasza watt hozzászólására (») Okt 16, 2011 /
 
Akkor gondolom ennyi maradt ki belőle!?

Remélem így már jó!

16F84A.png
    
(#) potyo válasza doup hozzászólására (») Okt 16, 2011 /
 
Elolvastad, amit kissi és Hp41C írtak?
(#) doup válasza potyo hozzászólására (») Okt 16, 2011 /
 
Most olvastam el!
Ezek a leírások alapján módosítottam de szerintem nem kellett sokat.
Újra feltöltöttem a képet.

Ha kicsit érthetetlen vagyok elnézést, de kb 1 hete kezdtem pic-ezni.

16F84A.png
    
(#) potyo válasza doup hozzászólására (») Okt 16, 2011 /
 
És eddig miért nem olvastad el? Azt sem olvasod el, amit a te kérdésedre írnak azok, akiktől a segítséget várod? Így nem lehet megtanulni...

A másik, hogy ne kapkodj, mert azt csinálod. A tápszűrő kondenzátor az 100nF kell, hogy legyen, és nem 100pF. És nem sorba, hanem párhuzamosan kapcsolódik a pic-el. A 1081621-es hozzászólásodon a táp odavezetés jó volt, a legutóbbin meg elrontottad.
(#) doup válasza potyo hozzászólására (») Okt 16, 2011 /
 
Így már megfelelő átalakítottam?

16F84A.png
    
(#) vicsys válasza doup hozzászólására (») Okt 16, 2011 /
 
Nem. Hol kap tápfeszt a PIC? A kondi még mindig 100pF...
(#) doup válasza vicsys hozzászólására (») Okt 16, 2011 /
 
A kondenzátort kijavítottam és a tápot a pic nem a vdd kapja +5v?

16F84A.png
    
(#) szitko hozzászólása Okt 16, 2011 /
 
Sziasztok.
Egy kis problémám lenne egy pic16f628-al. Két megszakítást használok, (TMR0, RBIE) és azt szeretném ha a TMR0 megállna, ha az RBIE megy.
A kérdésem az lenne, hogy elég ilyenkor a Timer flag-t törölni?
(#) watt válasza szitko hozzászólására (») Okt 16, 2011 /
 
Ha jól emlékszem, a Timer0-t nem lehet leállítani ennél a típusnál. De nézd meg az adatlapot, van-e TMR0ON bitje!?
(#) szitko válasza watt hozzászólására (») Okt 16, 2011 /
 
Az adatlapot már átnéztem, csak a Timer1-et meg a Timer2-t lehet megállítani. Azért kérdeztem, hátha valahogy meg lehet állítani, mert a Flag törlése nem jó megoldás.
Ha más nincs akkor mindig úraírom.
Köszönöm a választ.
Következő: »»   144 / 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