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   1142 / 1203
(#) sonajkniz válasza korozsi hozzászólására (») Dec 21, 2020 /
 
Ez rendben van, csak az a lényeg, hogy ezt a kijelzést hogyan teszi?
Egy alaprendszertől független kijelzőről van szó, azaz a hőfokmérést, beavatkozást, áramállítást egy külön vezérlés végzi és csak valamilyen formában elküldi a kijelezendő adatokat, azaz ez a kijelző rész a tápvezetéken kívül csak egy vagy két vezetéken adatokat kap, esetleg kap a beállított áramértéknek megfelelően egy analóg jelet és valamilyen formában a hőérzékelőkkel kapcsolatos információt? Ugyanis ezen ismeretek hiányában semmit nem lehet tervezni hozzá.
(#) korozsi válasza sonajkniz hozzászólására (») Dec 21, 2020 /
 
A hegesztö vezerlö paneljeben 12 volt van stabilan. Van benne egy UC3845 ic ami az egesz vezerlesert felelös. Az aramerösseg allito potmeterben is max csak 4,5 volt van. Feltettem az elözö oldalra egy fenykepet es azon ott van a pic panelon egy 7805 stabilizator kocka. Szerintem igy maximum 5 volt mehet bele a kijelzö panelekbe.
Maga a gepben 320 volt illetve nagyobb igenybe vetelek eseten meg erösebb aram folyik, de ez semmilyen formaban nem kapcsolodhat a kiegeszitö panelhoz. A kiegeszitö panel csak a gep vezerlesehez kapcsolodhat az az max 12 volt.
(#) Bakman válasza korozsi hozzászólására (») Dec 21, 2020 /
 
Áramváltó, egyenirányító és már mehet is a kontroller ADC bemenetére a feszültség. Itt: Bővebben: Link.
(#) Bakman válasza korozsi hozzászólására (») Dec 21, 2020 /
 
Ha a beállított értéket akarod látni a mért helyett, akkor egyszerűen használhatsz sztereo potit is. Az egyik az áramerősséget állítja be, a másik a kijelzésért fele, ez mehet a kontroller felé.

Ha az árambeállító poti és a kontroller GND pontja lehet közös, akkor egyszerűen a poti kimenetén megjelenő feszültséget kell mérni, nem kell sztereo potenciométer.
(#) korozsi válasza Bakman hozzászólására (») Dec 21, 2020 /
 
Igen valahogy ugy, de jo lenne bele egy kijelzö is az aramerösseg mutatasaras.
(#) Bakman válasza korozsi hozzászólására (») Dec 21, 2020 /
 
Az a kapcsolás amit linkeltem, arra való.
(#) korozsi hozzászólása Dec 21, 2020 /
 
megoldható 1db LM339 IC és 1DB ICL7107 -es ic-vel is nem kell feltétlen PIC-et programozni.
Ahőmérsékletet a komparátorok ellenőrzik, a kijelzést meg felügyeli a másik.
A hegesztő vezérlésébe eleve nem szól bele a PIC
üdv.:Foxi
Valami ilyesmire gondolnek.

Az sem rossz amit Bakman irt.
(#) sonajkniz válasza korozsi hozzászólására (») Dec 21, 2020 /
 
Hegesztés közben elég macerás a kijelzőt nézegetni. Ergo bőven jó, ha a beállított (kívánt) értéket mutatja.
(#) korozsi válasza sonajkniz hozzászólására (») Dec 21, 2020 /
 
Hat ez az, a beallitott erteket kellene neki mutatni es onnan tudna az ember, hogy mekkora aramra van allitva. Amugy csak talalomra vagy hasraütesre allitjak be es majd kiderül, hogy jo vagy meg sem.
Hegesztes közben tenyleg nem nezegeti az ember max masok.
(#) foxi63 válasza korozsi hozzászólására (») Dec 21, 2020 /
 
Szia !
Bár már off a téma, De az áramerősség sokat változik a az ív hosszától is, a hosszabbítótól is, a pálca minőségétől és a hálózati feszültségtől is, úgyhogy fogadd el hogy a poti csak saccoló funkció, az első próba ívből kiderül mekkorára is kell állítani a potit . A kijelző meg pontosan a potméter helyzetét jelöli mindegy hogy 0-20 vagy 20-140 .
(#) korozsi válasza foxi63 hozzászólására (») Dec 21, 2020 /
 
Köszönöm mindenkinek a hozza szolasat, de elörebb nem lettem. Keresgeltem a netem de nem talaltam semmilyen rajzot rola.
Nem igazan ertek veled egyet, hisz nem tudhatom, hogy hegesztettel-e mar ivhegesztövel. Az iv az nem igazan valtozik mar a hossza. A hosszabito a csak jo minössegü es nem 30 meter hosszu, olyan tesco minösseg az semmi.
Az hogy csak saccolo, de a kijelzön a beallitott aram jelenik meg az ott nem fog magatol valtozni. Azt csak a potmeter allitasaval lehet fel illetve levinni.
(#) sonajkniz válasza korozsi hozzászólására (») Dec 22, 2020 /
 
Idézet:
„de elörebb nem lettem”

Így nem is.
Feltettem itt egy kérdést, aminek a megválaszolásához ki kellene mérni az alappanelból jövő jeleket, vagy legalább az alappanel kapcsolási rajza kellene.
Találgatások alapján mi is csak találgatni tudunk.
(#) korozsi válasza sonajkniz hozzászólására (») Dec 22, 2020 /
 
Felteszem a kapcsolasi rajzot es ami lett belöle.
Elnezest kerek, abban igazad van, hogy csak talalgatasnak nem sok eredmenye van.
Van itthon nekem LM324 es ICL7107 Ic is, ezekböl kellene valamit kitalalni ra esetleg.
(#) sonajkniz válasza korozsi hozzászólására (») Dec 22, 2020 /
 
A korábban mellékelt fotó és a kapcsolási rajz alapján azt látom, hogy a rajzon szereplő hővédelem a kivitelezéskor módosítva lett. A három sorbakötött bimetálos kapcsoló helyett 3 thernmisztort alkalmazott a készítő. Ezeket a PIC-el olvastatja be és a PIC adja a kapcsolást az eredeti rendszernek. Ha hőbimetálokat alkalmazol, úgy ahogy a rajzon van, ezzel nem kell foglalkoznod. A továbbiakban a kollégák által javasolt sztereó potis megoldást ajánlom én is. Ugyanis az alapáramkör nem ad ki kijelző számára jelet. Arról fogalmam sincs, mi lehet a képen látható 9db víztiszta burájú LED.
A kijelző meghajtására már kaptál tippeket, de ha tudsz PIC-et programozni, akkor én is adnék egyet. Elég hozzá egy 7805,egy PIC10F320 vagy 322, és egy ilyen kijelző.
(#) korozsi válasza sonajkniz hozzászólására (») Dec 22, 2020 /
 
PIC.-et sajnos nem tudok programozni, de gondolkoztam mar rajta. Akkor az LM324 es a ICL7107 ezek a IC-k vannak amiböl lehetne meghajtani a kijelzöt illetve a höerzekelöket.

Köszönöm mindenkinek az epitö hozza szolasokat.

Üdv.: Gabor
(#) Patópali hozzászólása Dec 22, 2020 /
 
Sziasztok!
Kérdésem, hogy a PIC16f628-04/P és a PIC16F628-20/P közül melyiket válasszam egy LC mérő program beírásához? A leírás nem tér ki a kötőjel utáni jelölésre. Ha a gyorsabbat választom jó lenne, vagy a program határozza meg melyikbe kell, lehet égetni?
Sajnos nem vagyok otthon a pic témában, de hobbiból után építeném a fenti műszert.
Köszönöm, ha segítetek.

Boldog. békés Karácsonyt Kívánok!
Üdvözlettel.
Pali
A hozzászólás módosítva: Dec 22, 2020
(#) Bakman válasza Patópali hozzászólására (») Dec 22, 2020 /
 
A kötőjel utáni szám azt mondja meg, maximum mekkora órajelen tud járni. A 20 MHz-es tud 4 MHz-en is dolgozni de fordítva már nem igaz.

Ha a kvarc 4 MHz-es, jó mindkettő. Ha nagyobb frekvenciával rendelkezik, akkor csak a 20-as végű.

Viszont minden jót!
(#) Patópali válasza Bakman hozzászólására (») Dec 22, 2020 /
 
Szia!
A kvarc 4 MHz-es.
Köszönöm a segítséged!
Boldog Karácsonyt!
Üdv,
Pali
(#) slimcolt hozzászólása Dec 22, 2020 /
 
Sziasztok!

Van egy problémám amit nem tudom, hogyan kellene megoldanom.
Arról van szó, hogy van egy kritikus programrészem amit nem szabad megszakítanom.
Viszont a programrész futása közben érkezhetnek megszakítások, amit viszont végre kellene hajtanom amint lefutott a kényes program szakasz. Azt hiszem ezt hívják critical section-nak.

Egyszerűen tiltsam le az adott megszakítást amíg fut a kényes szakasz? A flag bit eközben beállítható marad, majd amint újra engedélyezem a megszakítást, az adott megszakítás kerülne végrehajtásra a prioritásnak megfelelően.

Ti ezt hogyan oldjátok meg?
(#) Peet19 hozzászólása Dec 22, 2020 /
 
Sziasztok!

Ha a CCP modul megszakítást okoz (CCP1IF) akkor nem kellene automatikusan a CCP1 lábon megjelennie az aktuális port szintjének az ellenkezője?
Így állítottam be:
  1. CCP1CONbits.MODE = 0b1011;   // CCP1 Compare mód beállítása "Pulse output; clear TMR1"

de abszolút semmi nem történik ha nem rakom be a:
  1. LATCbits.LATC2 = ~PORTCbits.RC2;
részt.
Pedig az RC2 lábon van alapból a CCP1. Hogy működik ez pontosan?
(#) Bakman válasza slimcolt hozzászólására (») Dec 22, 2020 / 1
 
Ha jól értelmezem az itt leírtakat, akkor a kritikus szakasz előtt a GIE bitet kell nullára állítani, ellenőrizni, hogy biztosan nulla, mehet a kritikus kódrészlet, GIE vissza.

Tuftommal GIE bekapcsolása után végrehajtódik a megszakítás ha netán azidő alatt futott volna be, amíg a bit ki volt kapcsolva.
(#) Bakman válasza Peet19 hozzászólására (») Dec 22, 2020 /
 
Milyen PIC-ről van szó? Van, amelyikben a beállított üzemmódtól függően H vagy L szintre kapcsolja a kimenetet (0b1000 és 0b1001), illetve további két üzemmódnál nem változtatja meg (0b1010 és 0b1011).

szerk.:
A lényeg maradt ki. Neked a 0b0010 üzemmód kell, ha jól értem.
A hozzászólás módosítva: Dec 22, 2020
(#) Peet19 válasza Bakman hozzászólására (») Dec 22, 2020 /
 
Hali!

Jaaa, tényleg, bocsi. PIC18F27K40 az áldozat. Amúgy átraktam "Toggle output" -ra és szintén semmi.
A hozzászólás módosítva: Dec 22, 2020
(#) Bakman válasza Peet19 hozzászólására (») Dec 22, 2020 /
 
Vissza az egész. Neked a 0b0010 vagy a 0b0001 üzemmód kell attól függően, hogy törölni akarod-e a hozzárendelt Timer-t vagy sem (Toggle output). Van ott még Pulse output üzemmód is, de hogy az pontosan mit csinál, ködbe vész.

  1. LATCbits.LATC2 = ~PORTCbits.RC2;
  2. helyett
  3. LATCbits.LATC2 = !LATCbits.LATC2;
Már ha kelleni fog. PORT regisztert nem szerencsés írni.

A modulhoz rendelt Timer be van állítva? Anélkül csak áll.
(#) Peet19 válasza Bakman hozzászólására (») Dec 22, 2020 /
 
Hát, nem is tudom. Amit írtál kódot az gyakorlatilag ugyanaz. LAT -al írok PORT -al olvasok (így tanultam).
Amúgy a PORT regisztert soha nem írom, csak beolvasom az épp aktuális jelszintet.
Ha a LAT -ból olvasok az csak a pufferből olvassa vissza a beállított szintet, nem pedig a valós jelszintet adja vissza. De lehet rosszul tudom, Te vagy a szaki
Bemásolom az egészet hátha felfedezel valami extra hibát:

  1. /************ 8MHz külső kristállyal **********/
  2. #include <xc.h>
  3. #include <pic18f27k40.h>
  4. #include "config.h"
  5.  
  6. /************ Globális változók ***********/
  7. volatile unsigned int cnt = 0;
  8.  
  9. /*************** Deklarációk **************/
  10. void init_base(void);
  11. void init_interrupt(void);
  12. void init_tmr1(void);
  13.  
  14. void __interrupt(high_priority) Isr(void);
  15.  
  16. void main(void) {
  17.    
  18.     init_base();
  19.     init_interrupt();
  20.     init_tmr1();
  21.    
  22.     /************** Főprogram *************/
  23.     while(1){
  24.        
  25.        
  26.        
  27.     }
  28.    
  29.     return;
  30. }
  31.  
  32. /***************** Alapbeállítások ****************/
  33. void init_base(void){
  34.    
  35.     // Az összes lábat analógról digitálisra állítom
  36.     ANSELA = 0;
  37.     ANSELB = 0;
  38.     ANSELC = 0;
  39.    
  40.     // Az összes lábat kimenetnek állítom be
  41.     TRISA = 0;
  42.     TRISB = 0;
  43.     TRISC = 0;
  44.    
  45.     // Az összes láb jelszintjét alacsonyra állítom
  46.     LATA = 0;
  47.     LATB = 0;
  48.     LATC = 0;
  49.    
  50. }
  51.  
  52. /**************** Megszakítás beállításai ***************/
  53. void init_interrupt(void){
  54.    
  55.     INTCONbits.GIE_GIEH  = 1;   // Globális megszakítás engedélyezve
  56.     INTCONbits.PEIE_GIEL = 1;   // Perifériás megszakítás engedélyezve
  57.     INTCONbits.IPEN      = 0;   // Megszakítások prioritása letiltva
  58.     PIE4bits.TMR1IE      = 1;   // Timer1 megszakítás engedélyezve
  59.     PIE6bits.CCP1IE      = 1;   // Komparátor modul megszakítás engedélyezve
  60.    
  61. }
  62.  
  63. /***************** Timer1 beállításai ***************/
  64. void init_tmr1(void){
  65.    
  66.     T1CONbits.ON    = 0;       // Timer1 kikapcsolása a beállítások előtt
  67.     T1CONbits.CKPS  = 0b11;    // Előosztó 1:8
  68.     T1CONbits.RD16  = 1;       // 16 bites mód beállítása
  69.    
  70.     TMR1CLKbits.CS  = 0b0001;  // Órajelforrás Fosc/4
  71.     TMR1            = 0;       // Számláló kezdőérték nullázása
  72.    
  73.     /* 8 MHz -es kristállyal 500ns -onként fogja léptetni a számlálót. Ha 1:1 az előosztó.
  74.      * 8 lépés 1us.
  75.      * Ha 1:8 az előosztó, akkor 4us-onként lépteti a számlálót.
  76.      * A számláló 16 bites akkor 65535-ig tud számolni. 2500 lépés 10ms, akkor a komparátor
  77.      * regisztereit 2500-ra kell állítani. Ez a CCPR1H és a CCPR1L. */
  78.    
  79.     CCP1CONbits.EN   = 0;        // CCP1 letiltása a beállítások előtt
  80.     //CCP1CONbits.MODE = 0b1011;   // CCP1 Compare mód beállítása "Pulse output; clear TMR1"
  81.     CCP1CONbits.MODE = 0b0010;   // CCP1 Compare mód beállítása "Toggle output" váltogatja a kimenetet
  82.     CCPR1            = 2500;     // Komparálási érték beállítása.
  83.     CCP1CONbits.EN   = 1;        // CCP1 indítása a beállítások után
  84.     T1CONbits.ON     = 1;        // Timer1 indítása a beállítások után
  85. }
  86.  
  87. /*************** Megszakításkor lefutó függvény ***************/
  88. void Isr(void){
  89.    
  90.     // Ha a komparátor okozott megszakítást
  91.     if(PIR6bits.CCP1IF){       // Eltelt 10ms
  92.         PIR6bits.CCP1IF = 0;   // Törlöm a megszíktást jelző bitet
  93.         /*cnt++;
  94.         if(cnt == 50){
  95.             LATCbits.LATC2 = ~PORTCbits.RC2;
  96.             cnt            = 0;
  97.         }*/
  98.     }
  99.    
  100.     // Ha Timer1 okozott megszakítást
  101.     if(PIR4bits.TMR1IF){
  102.         //LATCbits.LATC2 = 1;
  103.         // Komparátor módban a Timer1 soha nem fog túlcsordulni, mert az összehasonlításkor
  104.         // ha megegyeznek a beállított értékek akkor automatikusan törlődik a számláló
  105.         // lenullázódik és kezdődik a számolás előlről.
  106.     }
  107.    
  108. }
(#) Bakman válasza Peet19 hozzászólására (») Dec 22, 2020 /
 
A Timer1 megszakítás engedélyezve van de ez nincs kezelve sehol. Biztos ami biztos, kapcsold ki a teszt idejére.
  1. PIE4bits.TMR1IE = 0;
Nem vagyok benne biztos, hogy összehasonlító (compare) módban biztosan nem keletkezik ott megszakítás, lévén egy külön modul, csak éppen kapcsolódik másik modulhoz is, jelen esetben.

compare: összehasonlít

A komparátort kis hazánkban analóg összehasonlítóra használjuk, az adatlapban is kétféle elnevezés van: Comparator és Compare module. Ne keverd a kettőt.

Te váltogatni akarod a LAT regisztert, ezért kell azt olvasni és módosítani. Ha azt akarod invertálni, akkor azt is kell olvasni, nem egy másikat, még ha összefüggés is van a kettő közt.
A hozzászólás módosítva: Dec 22, 2020
(#) vladcepes hozzászólása Dec 22, 2020 /
 
Sziasztok! Van nekem egy Pickit 2 programozóm, már kb 2 éve nem vettem elő. Azóta Laptopot is cseréltem,ezen Win10 van,most összedugtam fel is ismerte (a Bluetooth-és egyéb eszközöknél ott is van a Pickit2) fel telepítettem a PICkit 2 v2.61-programot de a program megnyitása után ez fogad. Mi lehet a baj? Válaszokat köszönöm!

Névtelen.jpg
    
(#) pipi válasza vladcepes hozzászólására (») Dec 22, 2020 /
 
Lehet hogy nincs feltelepítve a drivere. Nézd meg az eszközkezelőben mit látsz. Azt nem tudom w10 x64 vagy x32 alatt működik-e egyáltalán....
(#) vladcepes válasza pipi hozzászólására (») Dec 22, 2020 /
 
Köszi!Eszközkezelőben nem hiányzik. Találtam egy ilyet itt is erről ír valaki,az a baj hogy leszedtem de hibás a file. Bővebben: Link
(#) vladcepes válasza pipi hozzászólására (») Dec 23, 2020 /
 
Nem bírom rávenni sehogy. Pedig ott van hogy használható .Azért köszönöm! Lehet tényleg nem is megy a Windows 10-el. A Pickit2 höz nincs is más program amivel bele tudnám égetni?

Névtelen.jpg
    
Következő: »»   1142 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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