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   946 / 1210
(#) kriszrap válasza ktamas66 hozzászólására (») Máj 8, 2017 /
 
  1. void oszlopok(char meddig)
  2. {
  3.     char i;
  4.     shiftnullaz(); itt kapcsolom ki
  5.     if(meddig <= 15)
  6. .... és itt adom aktivra a szintet.
  7.     {
(#) kriszrap hozzászólása Máj 8, 2017 /
 
  1. void tombol_rajz(int mill)
  2. {
  3.   int ido;
  4.   char i,k;//fontos
  5.   hanyadik=0;
  6.   for(ido=0;ido<mill;ido++)
  7.   {
  8.      for(i=1;i<6;i++)
  9.      {
  10.       nyfigy();
  11.       ureskocka();
  12.       oszlopok(l[i][0]);
  13.       LATA.RA4=l[i][1];
  14.       LATA.RA3=l[i][2];
  15.       LATA.RA2=l[i][3];
  16.       LATA.RA1=l[i][4];
  17.       LATA.RA0=l[i][5];
  18.  
  19.       LATB.RB7=l[i][6];
  20.       LATB.RB6=l[i][7];
  21.       LATB.RB5=l[i][8];
  22.       LATB.RB4=l[i][9];
  23.       LATB.RB3=l[i][10];
  24.  
  25.       LATB.RB2=l[i][11];
  26.       LATB.RB1=l[i][12];
  27.       LATB.RB0=l[i][13];
  28.       LATD.RD7=l[i][14];
  29.       LATD.RD6=l[i][15];
  30.  
  31.       LATD.RD5=l[i][16];
  32.       LATD.RD4=l[i][17];
  33.       LATC.RC7=l[i][18];
  34.       LATC.RC6=l[i][19];
  35.       LATC.RC5=l[i][20];
  36.  
  37.       LATD.RD0=l[i][21];
  38.       LATD.RD1=l[i][22];
  39.       LATD.RD2=l[i][23];
  40.       LATD.RD3=l[i][24];
  41.       LATC.RC4=l[i][25];
  42.       Delay_us(200);
  43.       if(megszakitas==1)break;
  44.      }
  45.      oszlopok(0);shift teljes nullázása
  46.      ureskocka();oszlopnullázás
  47.      if(megszakitas==1)break;
  48.   }
  49.   }
igy gondoltad??
A hozzászólás módosítva: Máj 8, 2017
(#) ktamas66 válasza kriszrap hozzászólására (») Máj 8, 2017 /
 
  1. void tombol_rajz(int mill)
  2.     {
  3.       int ido;
  4.       char i,k;//fontos
  5.       hanyadik=0;
  6.       for(ido=0;ido<mill;ido++)
  7.       {
  8.          for(i=1;i<6;i++)
  9.          {
  10.           nyfigy();
  11.    
  12.           LATA.RA4=l[i][1];
  13.           LATA.RA3=l[i][2];
  14.           LATA.RA2=l[i][3];
  15.           LATA.RA1=l[i][4];
  16.           LATA.RA0=l[i][5];
  17.      
  18.           LATB.RB7=l[i][6];
  19.           LATB.RB6=l[i][7];
  20.           LATB.RB5=l[i][8];
  21.           LATB.RB4=l[i][9];
  22.           LATB.RB3=l[i][10];
  23.      
  24.           LATB.RB2=l[i][11];
  25.           LATB.RB1=l[i][12];
  26.           LATB.RB0=l[i][13];
  27.           LATD.RD7=l[i][14];
  28.           LATD.RD6=l[i][15];
  29.      
  30.           LATD.RD5=l[i][16];
  31.           LATD.RD4=l[i][17];
  32.           LATC.RC7=l[i][18];
  33.           LATC.RC6=l[i][19];
  34.           LATC.RC5=l[i][20];
  35.      
  36.           LATD.RD0=l[i][21];
  37.           LATD.RD1=l[i][22];
  38.           LATD.RD2=l[i][23];
  39.           LATD.RD3=l[i][24];
  40.           LATC.RC4=l[i][25];
  41.           oszlopok(l[i][0]); //itt engedélyezni a kijelzést
  42.           Delay_us(200);
  43.           shiftnullaz();      //itt pedig letiltani
  44.           if(megszakitas==1)break;
  45.          }
  46.          ureskocka();   //ez nem tudom miért kell
  47.          if(megszakitas==1)break;
  48.       }
(#) kriszrap válasza ktamas66 hozzászólására (») Máj 9, 2017 /
 
És az miért van 100ms nél tökjö fényes de 1ms nél pedig halványabb.??
(#) Tasznka válasza dani555 hozzászólására (») Máj 9, 2017 /
 
Igen,fel kell menni 7 bitig.Ahogy elnézem,nem tudod eltüntetni,mert feltölti a maradék helyet fix méretig.Nincs formázási lehetősége,mint pl. a sprintf-nek. Bár picit furi,hogy 6 biten konvertál. Elnézve a leírását a mikroc-nek,ennek a konvertálásnak Int-ben kellene mennie,ami 32k-ig jó Link
Próbáld ki a temp,vartemp -et unsigned int -ként.
Sajna annyira nem ismerem a mikroC-t,és nem is jön be.Jobban szeretem én megírni a dolgaimat,főleg úgy,hogy akkor tudom,hogy mit is csinál.
Amúgy van sprintf a mikro c-ben ,azzal nem lenne jobb? pl: sprintf(t,"%u",temp);
Link
(#) kissi válasza kriszrap hozzászólására (») Máj 9, 2017 /
 
Szia!
Nem néztem meg a programodat, a fényerőt a LED be/kikapcsolás aránya határozza meg! Az szokott a gond lenni, hogy a kikapcsolás ideje ( amíg az egyik üzemmódot kikapcsolod, átállítod a másik képre és újra bekapcsolod!) az annyi, amennyi ( pl. x), ehhez kell viszonyítani a bekapcsolás időt! Ez azt jelenti, hogy az arány 1 ms-al --> fényerő= 1ms/(1ms+x), míg 100 ms-al --> fényerő=100ms/(100ms+x). Mind a kettő kisebb 1-nél, de a második nagyobb hányadost eredményez!
Azaz törekedj arra, hogy az átkapcsolási időhöz képest minél hosszabb legyen a bekapcsolási idő (ez minden LED-es MUX üzemmódnál igaz!), persze a megfelelő sebesség mellett!

Remélem érthető volt a leírásom így hajnalban
A hozzászólás módosítva: Máj 9, 2017
(#) dani555 válasza Tasznka hozzászólására (») Máj 9, 2017 /
 
Köszi a segítséget, meg fogom próbálni
Én is gondoltam különben már az sprintf-re, csak azt nem tudom, hogy az LCD mennyire eszi meg.
De majd kipróbálom így, mindenesetre lehet váltanom kéne valamilyen más nyelvre, mert kezdem a mikroc korlátjait látni..... Tudnál ajánlani esetleg valamit?
(#) slimcolt hozzászólása Máj 9, 2017 /
 
Sziasztok,

Egy olyan kérdéssel fordulok hozzátok, hogy a PIC-en a nem használt kivezetéseket hova csatlakoztassam? Vagy hagyjam szabadon?
Én le szeretném kötni GND-re, persze ezeket bemenetre állítottam.
Szakszerűen hogy kell kezelni ezeket a nem használt lábakat? Gondolom nem jó, ha lebeg..
(#) Panhard válasza slimcolt hozzászólására (») Máj 9, 2017 /
 
Nyugodtan hagyhatod lebegni. Nem kell lekötni testre sem. Ha nem állítod be a programban, akkor alapból bemenet lesz.
(#) nedudgi válasza Panhard hozzászólására (») Máj 9, 2017 /
 
Nem.
Állíthatod kimenetre, akkor nem annyira gáz, de bemenetet mindig fix potenciálon kell tartani.
A hozzászólás módosítva: Máj 9, 2017
(#) Panhard válasza nedudgi hozzászólására (») Máj 9, 2017 /
 
Miért nem mindegy milyen potenciálon van, ha nem kérdezed le a programban?
(#) Hp41C válasza slimcolt hozzászólására (») Máj 9, 2017 / 1
 
CMOS bemeneteket nem hagyunk szabadon:
1 - Érzékenyek a statikus töltésre, hozzáérése tönkremehetnek,
2 - Lebegés közben az átmeneti feszültség tartományba (az alacsony és a magas logikai szint közötti feszültség) hatására a bemeneten levő mindkét (az N-MOS és P-MOS) tranzisztor vezet, így nagyobb áram tápáram alakul ki a bemeneti körben,
3 - Ha ez a láb véletlenül a MCLR, a statikus töltés miatt programozási módba is beléphet a kontroller.

Megoldás:
1 - A nem használt lábakat ellenálláson a Vss -ra vagy a Vdd -re húzni (MCLR -t a Vdd-re),
2 - A nem használt I/O lábakat kimenetnek beállítani.
(#) Panhard válasza Hp41C hozzászólására (») Máj 9, 2017 /
 
Hát én már rengeteg áramkört terveztem, de sosem kötöttem sehova a szabad lábakat. Működik mind. Nem is látom sok értelmét egy 44 vagy egy 100 lábú kontrollernek a szabad lábait bekötni.
De mindegy, akkor be kell kötni. Elfogadom. Csak ne vitatkozzunk.
(#) Pali79 válasza Panhard hozzászólására (») Máj 9, 2017 / 1
 
Nem kell bekötni, csak kimenetnek beállítani. Kicsit felületesen olvastad.
(#) kriszrap válasza kissi hozzászólására (») Máj 9, 2017 /
 
Idézet:
„Szia!
Nem néztem meg a programodat, a fényerőt a LED be/kikapcsolás aránya határozza meg! Az szokott a gond lenni, hogy a kikapcsolás ideje ( amíg az egyik üzemmódot kikapcsolod, átállítod a másik képre és újra bekapcsolod!) az annyi, amennyi ( pl. x), ehhez kell viszonyítani a bekapcsolás időt! Ez azt jelenti, hogy az arány 1 ms-al --> fényerő= 1ms/(1ms+x), míg 100 ms-al --> fényerő=100ms/(100ms+x). Mind a kettő kisebb 1-nél, de a második nagyobb hányadost eredményez!
Azaz törekedj arra, hogy az átkapcsolási időhöz képest minél hosszabb legyen a bekapcsolási idő (ez minden LED-es MUX üzemmódnál igaz!), persze a megfelelő sebesség mellett!

Remélem érthető volt a leírásom így hajnalban”


Ha minden igaz nem szabadna fényerőt veszíteni
Kérlek nézd meg a kódot:
  1. void tombol_rajz(int mill)
  2. {
  3.   int ido;
  4.   char i,k;//fontos
  5.   for(ido=0;ido<mill;ido++)Mennyi ideig legyen egy kép.
  6.   {
  7.      for(i=1;i<6;i++)// szintenkénti ledek
  8.      {
  9.       nyfigy();
  10.       LATA.RA4=l[i][1];
  11.       LATA.RA3=l[i][2];
  12.       LATA.RA2=l[i][3];
  13.       LATA.RA1=l[i][4];
  14.       LATA.RA0=l[i][5];
  15.  
  16.       LATB.RB7=l[i][6];
  17.       LATB.RB6=l[i][7];
  18.       LATB.RB5=l[i][8];
  19.       LATB.RB4=l[i][9];
  20.       LATB.RB3=l[i][10];
  21.  
  22.       LATB.RB2=l[i][11];
  23.       LATB.RB1=l[i][12];
  24.       LATB.RB0=l[i][13];
  25.       LATD.RD7=l[i][14];
  26.       LATD.RD6=l[i][15];
  27.  
  28.       LATD.RD5=l[i][16];
  29.       LATD.RD4=l[i][17];
  30.       LATC.RC7=l[i][18];
  31.       LATC.RC6=l[i][19];
  32.       LATC.RC5=l[i][20];
  33.  
  34.       LATD.RD0=l[i][21];
  35.       LATD.RD1=l[i][22];
  36.       LATD.RD2=l[i][23];
  37.       LATD.RD3=l[i][24];
  38.       LATC.RC4=l[i][25];
  39.       oszlopok(l[i][0]);//engedélyezük a képet....
  40.       Delay_us(200);//5*200us 1ms ...
  41.       oszlopok(0);tiltjuk......
  42.       if(megszakitas==1)break;
  43.      }
  44.      if(megszakitas==1)break;
  45.   }
  46.   //tömbök üritése
  47.   for(k=0;k<6;k++)
  48.       for(i=0;i<26;i++)
  49.         l[k][i]=0;
  50. }
(#) Hp41C válasza kriszrap hozzászólására (») Máj 9, 2017 / 1
 
Tedd már fel az egész programot egyben...
A Kérdésed körülbelül olyan, mintha mutatnál egy liter vizet a Yukon -ból és megkérdezed merre keressek aranyat.
(#) kriszrap válasza Hp41C hozzászólására (») Máj 9, 2017 /
 
  1. void oszlopok(char meddig)
  2. {
  3.     char i;
  4.     shiftnullaz();
  5.     if(0<meddig && meddig <= 15)
  6.     {
  7.         if (meddig <= 8 || 10 < meddig)
  8.         {
  9.            for (i = 8; i >= 1; i--)
  10.            {
  11.                if (meddig <= 8 && i == meddig)//sima piros    és zöld
  12.                {
  13.                  LATA.RA7=0;
  14.                  LATC.RC0=1; //clock
  15.                  Delay_us(5);
  16.                  LATA.RA7=0;//data
  17.                  LATC.RC0=0;//clock
  18.  
  19.                }else if (10 < meddig && (i == meddig - 10 || i == (meddig - 10) + 5)){
  20.                  LATA.RA7=0;
  21.                  LATC.RC0=1; //clock
  22.                  Delay_us(5);
  23.                  LATA.RA7=0;//data
  24.                  LATC.RC0=0;//clock
  25.                }else{
  26.                  LATA.RA7=1;
  27.                  LATC.RC0=1; //clock
  28.                  Delay_us(5);
  29.                  LATA.RA7=0;//data
  30.                  LATC.RC0=0;//clock
  31.                }
  32.            }
  33.         }
  34.         if (meddig == 9 || meddig == 14) LATC.RC2=0;
  35.         if (meddig == 10 || meddig == 15) LATC.RC3=0;
  36.     }
  37. }
  38.  
  39. void sajat_kirajzol(char otodikleded1,char negyedikled1,char harmadikled1,char masodikled1,char elsoled1,
  40. char otodikleded2,char negyedikled2,char harmadikled2,char masodikled2,char elsoled2,
  41. char otodikleded3,char negyedikled3,char harmadikled3,char masodikled3,char elsoled3,
  42. char otodikleded4,char negyedikled4,char harmadikled4,char masodikled4,char elsoled4,
  43. char otodikleded5,char negyedikled5,char harmadikled5,char masodikled5,char elsoled5,int tomb,char szint)
  44. {
  45.      hanyadik=tomb;
  46.      l[hanyadik][0]=szint;
  47.      l[hanyadik][1]=elsoled1;
  48.      l[hanyadik][2]=masodikled1;
  49.      l[hanyadik][3]=harmadikled1;
  50.      l[hanyadik][4]=negyedikled1;
  51.      l[hanyadik][5]=otodikleded1;
  52.  
  53.      l[hanyadik][6]=elsoled2;
  54.      l[hanyadik][7]=masodikled2;
  55.      l[hanyadik][8]=harmadikled2;
  56.      l[hanyadik][9]=negyedikled2;
  57.      l[hanyadik][10]=otodikleded2;
  58.  
  59.      l[hanyadik][11]=elsoled3;
  60.      l[hanyadik][12]=masodikled3;
  61.      l[hanyadik][13]=harmadikled3;
  62.      l[hanyadik][14]=negyedikled3;
  63.      l[hanyadik][15]=otodikleded3;
  64.  
  65.      l[hanyadik][16]=elsoled4;
  66.      l[hanyadik][17]=masodikled4;
  67.      l[hanyadik][18]=harmadikled4;
  68.      l[hanyadik][19]=negyedikled4;
  69.      l[hanyadik][20]=otodikleded4;
  70.  
  71.      l[hanyadik][21]=elsoled5;
  72.      l[hanyadik][22]=masodikled5;
  73.      l[hanyadik][23]=harmadikled5;
  74.      l[hanyadik][24]=negyedikled5;
  75.      l[hanyadik][25]=otodikleded5;
  76.  
  77. }
  78. void tombol_rajz(int mill)
  79. {
  80.   int ido;
  81.   char i,k;//fontos
  82.   for(ido=0;ido<mill;ido++)
  83.   {
  84.      for(i=1;i<6;i++)
  85.      {
  86.       nyfigy();
  87.       LATA.RA4=l[i][1];
  88.       LATA.RA3=l[i][2];
  89.       LATA.RA2=l[i][3];
  90.       LATA.RA1=l[i][4];
  91.       LATA.RA0=l[i][5];
  92.  
  93.       LATB.RB7=l[i][6];
  94.       LATB.RB6=l[i][7];
  95.       LATB.RB5=l[i][8];
  96.       LATB.RB4=l[i][9];
  97.       LATB.RB3=l[i][10];
  98.  
  99.       LATB.RB2=l[i][11];
  100.       LATB.RB1=l[i][12];
  101.       LATB.RB0=l[i][13];
  102.       LATD.RD7=l[i][14];
  103.       LATD.RD6=l[i][15];
  104.  
  105.       LATD.RD5=l[i][16];
  106.       LATD.RD4=l[i][17];
  107.       LATC.RC7=l[i][18];
  108.       LATC.RC6=l[i][19];
  109.       LATC.RC5=l[i][20];
  110.  
  111.       LATD.RD0=l[i][21];
  112.       LATD.RD1=l[i][22];
  113.       LATD.RD2=l[i][23];
  114.       LATD.RD3=l[i][24];
  115.       LATC.RC4=l[i][25];
  116.       oszlopok(l[i][0]);kép aktiv
  117.       Delay_us(200);
  118.       oszlopok(0);nulláz
  119.       if(megszakitas==1)break;
  120.      }
  121.      if(megszakitas==1)break;
  122.   }
  123.   //tömbök üritése
  124.   for(k=0;k<6;k++)
  125.       for(i=0;i<26;i++)
  126.         l[k][i]=0;
  127. }
  128. while(1){
  129.   sajat_kirajzol(0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,1);
  130.    sajat_kirajzol(0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,2,2);//tömbök feltöltése
  131.    sajat_kirajzol(0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,3,3);
  132.    sajat_kirajzol(0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,4,4);
  133.    sajat_kirajzol(0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,5,5);
  134.    tombol_rajz(1);// meddig legyen a kép és ha 1 írok ide akkor halványabb a fényerő
  135.    }
(#) pajti2 válasza Panhard hozzászólására (») Máj 9, 2017 /
 
Az újabb pic-eknél van normálisabb emi védelem (összes bemenet vágva van diódával a vss és vdd felé, és egyébként is st minden), de a régebbieknél még nem volt olyan.
(#) Tasznka válasza dani555 hozzászólására (») Máj 9, 2017 /
 
Ameddig régebbi Pic-eket használsz,addig maradhat a Mplab 8.92+valamelyik C-fordító,vagy ha újabb a Pic,akkor valamelyik XC.
Ameddig lehet kerülöm az Mplab X-et,mert oda sok idő kell,ameddig megszokja az ember,bár van 1-2 jó dolog benne is,a sok hibán túl .
Annyi a hátránya,nekem az előnye,hogy nincs benne minden előre megcsinálva(8.92).Vagyis neked kell manuálisan megírni a függvényeket,pl:lcdre kiírás,soros port,stb. De szerintem jobb ha ezzel szenvedsz az elején,és megérted a működését,mintha csak gyári függvényeket használnál,amiknek mindig van valamilyen korlátja,amibe eléggé hamar bele lehet ütközni.
(#) Hp41C válasza pajti2 hozzászólására (») Máj 9, 2017 / 2
 
... bár kétlem....
Idézet a "tegnap" megjelent PIC32MK adatlapjából: DS60001402D
Idézet:
„2.8 Unused I/Os
Unused I/O pins should not be allowed to float as inputs. They can be configured as outputs and driven to a logic-low state. Alternatively, inputs can be reserved by connecting the pin to VSS through a 1k resistor and configuring the pin as an input.”

Pedig sokszáz lába van... Ha elég biztos vagy a programban és be tudod kötni, elé egy ellenállás az összesnek.
De ugyan ez a formula benne van a PIC32MX, PIC32MZ, PIC32MM, dsPIC33EP, dsPC33FJ, PIC18FxxJxx, PIC18FxxKxx adatlapokban is. Azért ezek inkább az új típusok közé tartoznak.
Bővebben: Link

Vajon miért árulják antisztatikus csövekben, a drágábbakat egyesével antisztatikus csomagolásban?
A hozzászólás módosítva: Máj 9, 2017
(#) Hp41C válasza Panhard hozzászólására (») Máj 9, 2017 /
 
Mondanám, hogy add oda fogdosni hölgyismerőseidnek, de sajnos a nylon alapú ruhák már kimentek a divatból, pedig rengeted alkatrész tettek tönkre...
A hozzászólás módosítva: Máj 9, 2017
(#) Hp41C válasza Hp41C hozzászólására (») Máj 9, 2017 / 1
 
Off:
Volt régebben vita arról, hogy a nem használt TTL bemeneteket be kell -e kötni.
Egy személyes tapasztalat:
Megbíztak, hogy egy Európa kártyákból felépített számítógép miért "száll el", ha CP/M rendszert futtat és miért nem, ha másmilyent. A másmilyen rendszer javarészben EPROM memóriából futott. Megvizsgálva a kártyákat és a hibát kianalizálva megállapítható volt, hogy a RAM memóriából hibás kódot olvas be néha a CPU kártya. A RAM memória történetesen egy D-RAM alapú kártya volt, ami a frissítést és a memória hozzáférést átlapolta. Tele volt TTL flip-flop -okkal, aminek a nem használt RESET és CLEAR bemenetei nem voltak bekötve. Egy másik, ugyan azt a kapcsolást megvalósító, de a 4 rétegű nyomtatást kihasználva az összes nem használt bemenetet fix szintre kötő memória kártyával a hiba nem jött elő sohasem. Apró vezetékdarabokkal az említett nem használt lábakat magas szintre kötve, a készülék megjavult. Soha többet nem volt probléma a CP/M futásával.
(#) slimcolt válasza Hp41C hozzászólására (») Máj 9, 2017 /
 
Köszönöm!

Beállítottam őket kimenetnek.
(#) slimcolt hozzászólása Máj 9, 2017 /
 
Még egy technikai kérdés:
A 4. oldalon lévő ábra szerint kötöttem be az ICSP-t.
A MCLR-t én letiltottam MPLAB-ban, így RA3 bemenetnek használható.
Mondjuk nem használom... fel húztam VCC-re egy 10K-val.
Az ábrán látható megoldást érdemes használni? Miért jó ha a tápfeszültség bekapcsolásakor a kondi által meghatározott ideig Reseteli a kontrollert? A dióda a PIC-et védi, de láttam megoldást hogy a felhúzó ellenállással párhuzamosan volt egy inverz dióda is, ami a kikapcsoláskor gyorsan kisüti a kondit.
Törekszem a lehető legkevesebb alkatrészt felhasználni, kérlek világosítsatok fel!
(#) cross51 válasza slimcolt hozzászólására (») Máj 9, 2017 /
 
Nekem sose okozott problémát, hogy nem volt ott az a 100n és dióda (egyiknél se 16F, 18F, 24F, 32F), ha jól gondolom (majd egy jártasabb megerősít vagy megcáfol) a bekapcsolási tranziens ellen véd.
A hozzászólás módosítva: Máj 9, 2017
(#) Hp41C válasza slimcolt hozzászólására (») Máj 9, 2017 /
 
Egy kicsit elavunl már az a leírás. Nem kell csak egy 10k a Vdd felé.
(#) Birs Alma hozzászólása Máj 9, 2017 /
 
Segítséget szeretnék kérni.
MPLAB X-et - XC8 (v1,41) ben szeretnék fordítani egy programot PIC18F4520-ra. I2C-t is használnék.

Ha beirom hogy <include i2c.h> akkor ilyen fájlt nem talál. Én sem találok ilyet sehol.
Viszont így az I2C konstansok és függvények viszont nem fordulnak le. (Pl. StartI2C() ; StopI2C() ; stb.)

Hogy kell ezt a megoldani? Köszönöm!
(#) Hp41C válasza Birs Alma hozzászólására (») Máj 9, 2017 /
 
A függvények forrásai a <XC8_telepítési_mappa>\sources\pic18\plib\i2c\ -ban találhatók.
A .h állományok pedif a <XC8_telepítési_mappa>\include\plib\ mappában.
(#) Birs Alma válasza Hp41C hozzászólására (») Máj 9, 2017 /
 
Köszönöm! Működik!
(#) kriszrap hozzászólása Máj 9, 2017 /
 
Kód
Ha egyszinten 1ms várok akkor teljesen jó .. ez lenne a megoldás vagy máskép kénne?
Következő: »»   946 / 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