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   659 / 1210
(#) killbill válasza zenetom hozzászólására (») Ápr 8, 2015 /
 
Pusztan csak arra gondoltam, hogy mindenkinek olyan a stilusa, amilyen. A tagolas szempontjabol szerintem nem sok jelentosege van, hogy az if es a zarojel koze teszel-e szokozt.
(#) zenetom válasza killbill hozzászólására (») Ápr 8, 2015 /
 
Jó, Te nyertél!

Hp41C
Viszont valami nagy huncutság van, mert akkor is állítja a "teszt" kimenetet, ha úgy csinálja, ahogy írtam a kódrészletet. Tehát tuti csak akkor állítja, ha INT megszakítás van.
Az olvasoint függvényt is ki kéne szedni, meg minden felesleges sallangot.
A hozzászólás módosítva: Ápr 8, 2015
(#) Pali79 válasza zenetom hozzászólására (») Ápr 9, 2015 /
 
Meg kell mondjam, igazából nem értelek téged sem és a kérdezőt sem.
Téged azért, mert után akar építeni a kolléga egy meglévő kapcsolást, amihez minden adott és mivel a 628A és a 84A között elég nagy a hasonlóság, a siker kb 99%-os még így is. PIC tudás meg nem igazán kell hozzá. Az, hogy esetleg nincs DCF vétel csak egy dolog, attól még működik az óra csak nem szinkronizál az adóval.
A kérdezőt meg azért mert ennek nem sok köze van a pic-kekkel való ismerkedéshez. Itt nincs királyi út, LED villogó, futófény, potméter és AD kezelés. Ezek az alapok, tök kezdőként aki nem indul annak szinte biztos a bukása, legalábbis a kín szenvedés borítékolható. Csak azt kell eldönteni melyik nyelvbe akar belemélyülni. Kezdőként az assembly a legkézenfekvőbb, rengeteg példaprogram van hozzá amin keresztül meg lehet érteni a működést. Itt is rengeteg jó dolog van: Nullától a robotokig című cikk, illetve a bevezetés a PICológiába című videó jó alap.
(#) zenetom válasza Pali79 hozzászólására (») Ápr 9, 2015 /
 
Szerintem zárjuk le a filozofálást.
(#) Topika válasza Hp41C hozzászólására (») Ápr 9, 2015 /
 
Szia Hp41C!
Azért az INT1 szerepel a programban hogy kizárjam az INT0 hibájat. A teszt kimenet a szkópon is mutatja hogy a megszakításokat az INTx váltja ki. Az a baj hogy hiába állítom a INTEDG1 bitet a felfutó és a lefutó élek után is megjön a megszakítás. Ha megnézed a képet jól látszik.
(#) Hp41C válasza Topika hozzászólására (») Ápr 9, 2015 /
 
A nagy kérdés az, hogy a megszakítás kérés mitől származik.
Tilstd le a soros vételi megszakítást, a soros adót és a vevőt is. Vidd be a teszt = 1 sort a if(INTCON3bits.INT1IF==1) -en belülre.
  1. if (INTCON3bits.INT1IF==1)
  2.             {
  3.                     teszt=1;
  4. //                    olvasoint();
  5.                     INTCON3bits.INT1IF=0;
  6.             }
  7.             teszt=0;

Vedd fel a teszt jelalakját.
(#) jury válasza Pali79 hozzászólására (») Ápr 9, 2015 /
 
Sziasztok!
Nem szeretném a konfliktus lenne ez miatt.
A dcf77-ről azt hittem bele égetem a HEX-et és megy, mint dcf jelgenerátoron Bővebben: Link és megy a dolog. De mivel nem ment a dcf77 óra kivettem a régi PIC16F84A és utána nem látta a PICKIT 2. gondolom tönkrement a 84a. és már csak 628 volt itthon.
Köszönöm az ajánlott cikket és video-t mind kettőtöknek.
Már túl vagyok mindegyiken, de szintem újból és újból elő kell majd szednem őket.
Assemblyvel fogok kezdeni de nagyon kis részletben fogok majd tudni vele haladni. Biztos lesznek vele kapcsolatban sok sok kérdésem.
A hozzászólás módosítva: Ápr 10, 2015
(#) Pali79 válasza jury hozzászólására (») Ápr 9, 2015 /
 
Én ugyan nem olvastam végig a cikket, de ha egyáltalán nem működött az biztos nem a DCF miatt volt. Elég sok óra van itt a cikkek között ami DCF-et használ, de ez csak egy lehetőség! Ha nincs az adott bemeneten jel akkor is menni kellene az órának! Tehát ha összerakod a kapcsolást, felprogramozod a PIC-et, bekapcsolod valamit kell mutatnia a kijelzőnek! Ha semmit sem mutat az biztos nem a DCF miatt van!
Nem lesz konfliktus, max. nézeteltérés, de az lesz mindig is. Neki is van véleménye, nekem is és ez történetesen nem egyezik. Amíg emberi hangnemben el tudunk vitatkozni egy témán addig nincs baj (szerintem).
(#) Kapagerenda hozzászólása Ápr 10, 2015 /
 
üdv,
kijelzőt próbálok vezérelni de sajnos csak az alábbi kép jelenik meg a kijelzön (lásd a képen). Ezelőtt már működött, kiírta a szöveget de egy ideje csak ez a jelenség jelenik meg rajta. Lehet kipurcant a kijelző? Ha válltoztatom a kontrasztot akkor tisszat üres a kijelző. Azért a biztonság kedvéért itt a vezérlő program is:

  1. // LCD module connections
  2. sbit LCD_RS at RB4_bit;
  3. sbit LCD_EN at RB5_bit;
  4. sbit LCD_D4 at RB0_bit;
  5. sbit LCD_D5 at RB1_bit;
  6. sbit LCD_D6 at RB2_bit;
  7. sbit LCD_D7 at RB3_bit;
  8. sbit LCD_RS_Direction at TRISB4_bit;
  9. sbit LCD_EN_Direction at TRISB5_bit;
  10. sbit LCD_D4_Direction at TRISB0_bit;
  11. sbit LCD_D5_Direction at TRISB1_bit;
  12. sbit LCD_D6_Direction at TRISB2_bit;
  13. sbit LCD_D7_Direction at TRISB3_bit;
  14. // End LCD module connections
  15.  
  16. unsigned char ch;                    //
  17. unsigned int adc_rd;                 // Declare variables
  18. char *text;                          //
  19. long tlong;                          //
  20.  
  21. void main() {
  22.     INTCON = 0;                      // All interrupts disabled
  23.     ANSEL = 0x04;                    // Pin RA2 is configured as an analog input
  24.     TRISA = 0x04;
  25.     ANSELH = 0;                      // Rest of pins are configured as digital
  26.  
  27.     Lcd_Init();                      // LCD display initialization
  28.     Lcd_Cmd(_LCD_CURSOR_OFF);        // LCD command (cursor off)
  29.     Lcd_Cmd(_LCD_CLEAR);             // LCD command (clear LCD)
  30.  
  31.     text = "mikroElektronika";       // Define the first message
  32.     Lcd_Out(1,1,text);               // Write the first message in the first line
  33.     text = "LCD example";            // Define the second message
  34.     Lcd_Out(2,1,text);               // Define the first message
  35.  
  36.  
  37.  }
(#) icserny válasza Kapagerenda hozzászólására (») Ápr 11, 2015 /
 
Ha korábban már működött, akkor - tekintettel a drótgubancra - legvalószínűbb az érintkezési hiba az adatbitek, vagy a vezérlőjelek vonalain. (A tápfesz és a kontraszt láthatóan megvan)

A nem használt R/W láb le van kötve a földre, ugye?
(#) Kapagerenda válasza icserny hozzászólására (») Ápr 11, 2015 /
 
Hát igen kicsit gubancos a dolog, áttelenőrzöm, hogy megvannak e a kontaktusok csak nagyon nem volt hozzá kedvem Az R/W láb levan kötve a földre. Viszont egyszer mintha rövidrezártam volna tápfeszt a kijelzőn, a pickit 2 meg is szüntette a tápellátást ez miatt. Ugyanis van egy poti amivel a kontrastot lehet állítani és ezt teljesen kitekertem amikor ugye nulla értékű ellenálás van rajta. Ez a rövdrezárás nem okozhat most nekem útólagosan problémát?
(#) Bakman válasza Kapagerenda hozzászólására (») Ápr 11, 2015 /
 
Ha jól kötöd be a potit, nem tudsz rövidzárat csinálni.

LCD.jpg
    
(#) Kapagerenda válasza Bakman hozzászólására (») Ápr 11, 2015 /
 
Igazad van hülyeséget írtam a potival nemtudom rövidrezárni. Áttelenőriztem a kontaktokat és mindegyik okés volt. Utána tettem egy próbát és már működött Valamelyik érintkezést hozhattam helyre biztosan. Kösz a segítségeket
(#) DireLion hozzászólása Ápr 12, 2015 /
 
Sziasztok!
Szeretnék egy 32,7.. oszcillátort bekötni a t0cki lábra.
Kell e kondenzátort tenni, vagy valamit? Mert elég furán nézne ki, ha vdd-re rákötném az egyik lábát a másikat meg a pic bemenetére...
Vagy valami jó kis rajzot tudnátok csatolni?
Több órája keresek ezzel kapcsolatban, de seholsem találok semmit
Köszönöm előre is a választ/ válaszokat.
(#) nedudgi válasza DireLion hozzászólására (») Ápr 12, 2015 /
 
Oszcillátor, vagy kvarc?
Ha oszcillátor, akkor hiába néz ki furán, attól annak még úgy kell lenni. A tápfeszültsége és a föld közé egy 100nF kondi, és kész. Az adatlap emlegethet ellenállást a kimenet, és a PIC bemenete közé.
(#) DireLion válasza nedudgi hozzászólására (») Ápr 12, 2015 /
 
Huh bocsi, de ez egy kvarc kristály. Nem tudtam, hogy mind2 egy külön csoportot alkot :/
(#) icserny válasza DireLion hozzászólására (») Ápr 12, 2015 /
 
A kvarckristály egy kétpólus passzív elem, amihez kell némi elektronika, hogy rezgéskeltő (oszcillátor) legyen belőle. A T0CKI bemenet nem alkalmas erre, az csak jelek fogadására szolgál. A PIC mikrovezérlőknél a 32 kHz-es segédoszcillátor kivezetések általában a T1 timerhez kapcsolódnak.

A kvarcoszcillátor a kvarckristály mellett tartalmazza azt az áramkört, ami a rezgéskeltéshez kell. Ennek fejében tápfeszültséget igényel. Többnyire négy lába van: föld, tápfeszültség, kimenet, s a negyedik láb vagy tiltó/engedélyező bemenet, vagy nincs bekötve (NC).
(#) DireLion válasza icserny hozzászólására (») Ápr 12, 2015 /
 
Értem, akkor szerintetek, hogyan oldjam meg ezt a problémát?
órát készítek, és 4MHz oszcillátora van a pic-nek. Ezt bárhogy variálom nemlehet 1s timert létrehoznom. Én arra gondoltam, hogy 32.768 kHz jelet kapna a t0cki láb. Ezt mivel tudnám megoldani?
Mert 4060 as icvel láttam, de azt nem hiszem, hogy ki tudom számolni...
(#) Bakman válasza DireLion hozzászólására (») Ápr 12, 2015 / 1
 
A mellékeltben van egy kép (példa), hogyan lehet használni egy kvarkristályt magában. A másik kép (részlet) pedig azt mutatja, hogy a Timer2 -vel milyen osztások esetén lehet egész frekvenciás megszakítást létrehozni. Pl. 25 Hz esetén már csak 25 -ig kell elszámoltatni vele és készen is van az 1s -os időzítő.
(#) DireLion hozzászólása Ápr 12, 2015 /
 
Köszönöm!!! Akkor megpróbálom így csinálni! Ezer hála
(#) icserny válasza DireLion hozzászólására (») Ápr 12, 2015 / 1
 
Itt egy másik kapcsolás: 32 kHz-es oszcillátor A felhasználatlan kapukból lehetne még utána tenni egyet leválasztónak...
(#) zenetom válasza DireLion hozzászólására (») Ápr 12, 2015 /
 
Szia!
Milyen PIC-et használsz? Órának a Timer1-et szoktuk használni, annál megvalósítható az, amit írtál, nem kell semmi extra, csak maga a kvarc, meg 2db kondi. "T1OSI" és "T1OSO" lábak közé kell bekötni az adatlap szerint, és már kész is.
(#) Hp41C válasza DireLion hozzászólására (») Ápr 12, 2015 / 1
 
Milyen típus? 16F84(A) - Érdemeiket elismerve nyugdíjban kellene küldeni őket.
16F628: 4MHz órajellel járatva, a timer2 órajele 1 MHz. A timer 2 -t 1000 -es osztásra beállítva már meg is van az 1kHz -es megszakításkérés. 1000 megszakításonként lehet a másodpercet léptetni.
A hozzászólás módosítva: Ápr 12, 2015
(#) DireLion hozzászólása Ápr 13, 2015 /
 
Sziasztok! Pic16f627 et használok. Abban még nincs sajna timer2. Azt a t1osi az szimpatikus megoldás, megpróbálom.
Csak, az a baj hogy mindegyik láb használat alatt van. Kivéve az ra4/t0cki
A hozzászólás módosítva: Ápr 13, 2015
(#) kissi válasza DireLion hozzászólására (») Ápr 13, 2015 / 1
 
Szia!

Hogyne lenne ( pdf, 27.oldalon 3-at említ ! ), különben HP41C kolléga nem említette volna !
(#) DireLion válasza kissi hozzászólására (») Ápr 13, 2015 /
 
Hát, rájöttem azóta, hogy belső jelet osztok/szorzok, kezdőértéket allítok, s tudok 1s megszakítast létrehozni. Sok sorral és számitassal.
Tegnap gyorsan átszaladtam az adatlapon, de nem lattam. Ha vann akkor jó, mert 16 bittel gyorsabb lesz. Kevesebbszer kell kijönni, így nem fog annyit késni a programom.
Köszönöm a segítségeket.
Inkább timert fogok használni, mert a pic minden lábát hasznalom.
(#) DireLion válasza DireLion hozzászólására (») Ápr 13, 2015 /
 
Hülyesèget írtam, nincs ebben 16 bites timer
valahol olvastam, hogy valamiben van, összetévesztettem
(#) nedudgi válasza DireLion hozzászólására (») Ápr 13, 2015 /
 
A TMR1 micsoda, ha nem 16 bites?
(#) Pali79 válasza DireLion hozzászólására (») Ápr 13, 2015 /
 
Idézet:
„The Timer1 module is a 16-bit timer/counter consisting of two 8-bit registers (TMR1H and TMR1L) which are readable and writable.”

Kedves kolléga! vedd már elő azt az adatlapot és nézd át rendesen!
Be is linkelem neked, hogy ne kelljen keresni!
(#) Ferkógyerek hozzászólása Ápr 14, 2015 /
 
Sziasztok!
Létezik hogy egy hex fájl tönkretegye a PICet?
A jelenség a következő:
Az internetről letöltött, fent említett hex fájl PIC16F628A-ba égetésekor az MPLAB
Idézet:
„The following memory regions failed to program correctly:
Program Memory
Address: 00000000 Expected Value: 00000183 Received Value: 00000000
Programming failed
hibaüzenetet dob.
Ezek után hiába törlöm a PIC-et, többé már nem programozható fel, régebbi működő hex fájlokkal sem, sőt van hogy a PICkit3 nem is ismeri fel a mikrovezérlőt. Két fajta égetővel, két számítógépen, 4db PICkel is ez a helyzet.
Esetleg elállított valamit a program, amit a törlés sem hoz helyre?
Következő: »»   659 / 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