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   675 / 1210
(#) ktamas66 válasza Pali79 hozzászólására (») Jún 1, 2015 /
 
Ha jól értem, akkor ez azt csinálná, hogy a másik pic a PORTA-ra kiadott impulzusokat ossza le és ad vissza egy IT-t. Akkor ez így jó lehet, csak azt nem értem hol számolsz le több száz impulzust (ez kb. 5-öt ad másodpercenként).
(#) Pali79 válasza ktamas66 hozzászólására (») Jún 1, 2015 /
 
Jól érted!
Idézet:
„csak azt nem értem hol számolsz le több száz impulzust”

Nem akartam lelőni a poént, de ha már rákérdeztél: van egy harmadik PIC ami szintén veszi az impulzusokat. Ezzel a PORTC-t, avval pedig a PORTD-t inkrementálom és egyszerűen a két portra kötött ledekkel jelzi a számlálást. Ha megáll bináris formában jelzi, hogy hány impulzust számolt.
(#) sonajkniz válasza Pali79 hozzászólására (») Jún 1, 2015 /
 
Pali!
Ennyi fáradsággal már számszerűen kiirathatnád az egészet egy karakteres LCD-re!
(#) Pali79 válasza sonajkniz hozzászólására (») Jún 1, 2015 /
 
Nem az a baj, hogy nem tudom mennyi volt, hanem, hogy mindig más.
(#) sonajkniz válasza Pali79 hozzászólására (») Jún 1, 2015 /
 
Ha jól emlékszem, a PIC12-esen egy potival állítod, hogy mennyit számoljon, és körönként olvasod újra a poti értékét. Ha ez nem egy helikális poti, és nagyfelbontásban olvasod, az lengeni fog.
(#) Pali79 válasza sonajkniz hozzászólására (») Jún 1, 2015 /
 
Jól emlékszel. Csak sima trimmer, balra shiftelem az eredményt és csak a felső bájtot használom.
Gondoltam arra is, hogy egyszer kiolvasom az AD-t, indulásnál, de aztán valamiért elvetettem a dolgot.
(#) sonajkniz válasza Pali79 hozzászólására (») Jún 1, 2015 /
 
Ha csak a felső byteot használod, és nem szorzod fel az eredményt, akkor elenyésző a lengés. Bár +-1et azért tévedhet. Főleg, ha próbanyák, és hosszú a vezeték.
(#) Pali79 válasza sonajkniz hozzászólására (») Jún 1, 2015 /
 
A 12f675 SK gyártott "végleges nyákon van a trimmerrel együtt, kb 2 mm a vezetősáv és a trimmer és a PIC lába között. Na jó legyen 5 mm...
(#) ktamas66 válasza Pali79 hozzászólására (») Jún 1, 2015 /
 
Több mérést kell átlagolni, főleg ha a táp a referencia (mert az sem stabil), ha egyáltalán már jó a mérés. Jobb híján írhatsz egy rutint, ami annyi impulzust ad ki amit az AD mér, és ezt számoltatod a számlálóval. Esetleg építhetsz egy jobb diagnosztikai eszközt:kezdőknek.
(#) sonajkniz válasza Pali79 hozzászólására (») Jún 1, 2015 /
 
Akkor passz!
Bár az talán még megér egy misét, hogy az ad-t csak egyszer olvasod be. Főleg, mivel megszakításokkal dolgozol. Ugyanis ha ad közben jön megszakítás, az ad leakadhat. (ez saját tapasztalat)
(#) Pali79 válasza sonajkniz hozzászólására (») Jún 2, 2015 /
 
Lehet átrendezem a programot úgy, hogy az AD-t elvégzem és csak aztán engedélyezem a megszakítást, hogy ne tudjon bekavarni.
(#) Pali79 hozzászólása Jún 2, 2015 /
 
Még azon gondolkodom, hogy lenne-e értelme várakozással indítani a programot, hogy mire annak vége, addigra beáll a tápfesz is, mert erős a gyanúm, hogy azzal van a gond, hogy amikor feszültség alá kerülnek a PIC-ek és egyszerre kezdenek működni akkor lesz valami zavar a rendszerben amitől valamelyik regiszter kezdőértéke nem a megfelelő, esetleg létrejön egy pici impulzus az egyik lábon amit a másik már megszakítási kérelemként érzékel.
Vélemény?
(#) brato válasza Pali79 hozzászólására (») Jún 2, 2015 /
 
A PIC tápfeszbeállására van konfigurációs utasítás.
(#) djadji hozzászólása Jún 3, 2015 /
 
Sziasztok!
Van egy PicKit3-am, és most találtam pár 12F1572-es PIC-et. Viszont az égetőben nem tudom beállítani, hogy ezt a chipet szeretném használni, valószínűleg olyan régi, hogy nem ismeri (gondolom én). Ilyenkor lehet tenni valamit, hogy ne kellejen kidobnom a chipeket és tudjam használni? Még sose futottam ilyen problémába. Lehet letölteni valamit, ami felismerteti a PIcKit3-mal és használhatom?
(#) norbiv8 válasza djadji hozzászólására (») Jún 3, 2015 /
 
A 12f1572-t nem mondanám réginek. MplabX alatt nekem írja a PK3.
(#) Pali79 válasza djadji hozzászólására (») Jún 3, 2015 /
 
Ott valami más gubanc lesz. Ez a PIC kb két éve van forgalomban és a Microchip oldalon is ezt írja:
Idézet:
„Debug and Programming support is available via PICkit™ 3, and MPLAB® ICD 3”
(#) patrik81 hozzászólása Jún 3, 2015 /
 
Sziasztok!
Van egy ilyen programrészletem,PIC-PC kommunikációt szereték megvalósítani.Tud valaki valami egyszerű linket,likeket mondani?Azt sem értem hogy lesz elküldve egy értelmes szó!Hogy küldik el,hogy "init complete!"?Vagyis arra gondolok,hogy hogy programilag hogy oldották meg,hogy egy betű helyett egy egész mondatot elküldenek.A *s-el lesz valami...
  1. void USART_putc(unsigned char c)
  2. {
  3.     while(!TXSTAbits.TRMT);//wait until transmit register is empty
  4.     TXREG=c;
  5. }
  6. void USART_puts(unsigned char *s)
  7. {
  8.     while(*s)
  9.     {
  10.         USART_putc(*s);//send character pointed to by c
  11.         s++;//increase pointer location to the next character
  12.     }
  13. }
  14. int main()
  15. {
  16.     OSCCONbits.IRCF=0X0D;//INTOSC frequency 4 Mhz
  17.     USART_init();
  18.     USART_puts("init complete!\n");
(#) djadji válasza Pali79 hozzászólására (») Jún 3, 2015 /
 
Kézi kiválasztást használok, ott a 12F-eknél csak 5,6,7-tel kezdődő PIC-ek vannak.
Mintha rémlene hoy volt valahol olyan lehetőség is, hogy autodetect, de most nem találom. (3.10 van fent, korábban 2. valamennyi volt).
Már nincs autodetect? Vagy valamit rosszul választok ki? (próbáltam a device famaily-ben a baseline-t és a midrange-et is)
(#) bbalazs_ válasza patrik81 hozzászólására (») Jún 3, 2015 /
 
Ahogy latod, van egy pointer, ami a stringre mutat.

Eloszor ellenorzi, hogy kuldhet-e adatot, utana a pointer altal mutatott cimrol levo BETUT beteszi a kuldesi regiszterbe, ami elkuldi szepen, es ha sikerult, akkor ezt azzal a bittel jelzi, amit latsz. Igy tudni fogja, mikor mehet a kovetkezo betu, amihez megnoveli a pointert 1-el. egeszen addig csinalja ezt, amig tart a szoveg.

De ezt te is elolvashatod, a kommentekben talalhato a vegen, a pontosvesszo utan.
(#) Pali79 válasza djadji hozzászólására (») Jún 4, 2015 /
 
Nekem 2.20 van fent, abban ha az all family van kiválasztva, ott benne van a listában.
(#) Hp41C válasza djadji hozzászólására (») Jún 4, 2015 /
 
A PICkit3 -at milyen programmal kezeled?
MpLab 8.xx nem kezeli,
MplabX kezeli,
IPE (Integrated Progamming Environment) kezeli,
PICkit3 standalone program egy PICkit2 -t csinál belőle egy réges-régi Pk2DeviceFile.dat -tal (ver: 1.62.14), ami csak a PIC12F1822 és PIC12F1840 -et ismeri.
PICKit2 nem kezeli, még a 1.62.146 verzióval sem. Ebben az esetben egy DeviceFile
Editorral lehet felvenni a Midrange / 1.8V min csdaládba...
(#) djadji válasza Pali79 hozzászólására (») Jún 4, 2015 /
 
Köszi, megnézem.
(#) usane válasza djadji hozzászólására (») Jún 4, 2015 /
 
Most megmondom, hogy a PicKit3 standalone-t használod szerintem. Felejtsd el a PicKit3 programmer szoftvert, használd az MpLab IPE-t.
Még ha hex-et égetni egyszerűbbnek is tűnik akkor sem jó. Az elődjéből a PicKit2-ből lett létrehozva gondolom, de nem nőtte ki a gyermekbetegségeit.
(#) ativagyok válasza usane hozzászólására (») Jún 4, 2015 /
 
Sziasztok!

Egy PIC PWM-es ventilátor szabályzón dolgozom PIC-kel, amire C nyelven írom a progit. A különböző hőmérséklet tartományokat if..else if utasításokkal vizsgálom. Ha éppen határon van a hőmérséklet, akkor ugrál a PWM érték a két tartomány között. Milyen módszerrel lehetne egy hiszterézist kialakítani két tartomány között?
Köszönöm előre is a segítséget.
Ati

Mod.: usane: Elnézést, nem válasz akart lenni.
A hozzászólás módosítva: Jún 4, 2015
(#) djadji válasza usane hozzászólására (») Jún 4, 2015 /
 
Valóban azt hazsnálom. Megpróbálom az MPLAB-ot, és tényleg csak a HEX-et égetem be ezzel, azt hittem erre pont ez való. (flowcode-dot használok, mert lsuta vagyok, ahol kell C betétekkel, ez a legkényelmesebb sztem)
Köszi a tippet!
(#) pjg válasza ativagyok hozzászólására (») Jún 4, 2015 /
 
Bekapcsol ha a szükségesnél x-el kisebb és kikapcsol ha a szükségesnél x-el nagyobb.
(#) djadji válasza ativagyok hozzászólására (») Jún 4, 2015 /
 
Szia!

Én digitális forrasztóállomás programnál azt csináltam, hogy a hőmérsékletet 2 változóba tároltam. Az egyik a hő-volt, a másik a hő-aktuális. Elraktam a ő-volt-ba a kezdő hőfokot, és vizsgálatkor, ha a hő-aktuális nem volt nagyobb vagy kisebb 10 fokkal mint a hő-volt, akkor nem csinált semmit a program. Ha nagyobb volt a különbség mint +-10 fok, akkor elraktam az új hőfokot a hő-volt-ba és be ill ki kapcsoltam a fűtést.
Másik megoldás a kerekítés, 10, 20, 50-esre, de azt minden méréskor el kell végezni. Itt csak egy összehasonlítás kell végezni.
Biztos van elegánsabb megoldás is, nekem ez bevált.
(#) sonajkniz válasza ativagyok hozzászólására (») Jún 4, 2015 /
 
Szia!
A bekapcsolás pillanatában a referencia értékből vonj ki annyit, amekkora hiszterézist szeretnél. A kikapcsolás pillanatában pedig ugyanennyit adj hozzá!
(#) usane válasza djadji hozzászólására (») Jún 4, 2015 /
 
Igen arra pont jó VOLT, de mivel a MC nem fejleszti tovább így felejtős.
Én is használtam régen, de már 80%-ban új generációs PIc-el foglalkozom és meguntam, hogy mindig szórakozni kellett vele, hogy működjön. Az IPE meg szerintem nagyon jó lett.
Ha csak hex-et kell égetni mindig azt használom.
(#) ativagyok hozzászólása Jún 4, 2015 /
 
pjg, djadji és sonajkniz: Köszönöm a segítséget, úgy tűnik sikerült megoldani.
Üdv,
Attila
Következő: »»   675 / 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