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   84 / 1210
(#) Csabax válasza trudnai hozzászólására (») Jan 15, 2011 /
 
Köszönöm a segítséget.
C18 amivel küzdök ő meg velem, PIC18fxxxx lenne az áldozatom. Rájöttem hogy sürgősen be kell gyüjtenem egy demoboardot is. eddig egy USB-s ICD2 klónt használtam meglévő progik beégetéséhez.
Most már viszont eljött az idő hogy bele kellene nyúlnom meglévő progiba illetve sajátot is kellene írnom.Hittem hogy C-vel könnyebb megvannak a könyvek, leírások, de lehet hogy az ASM könyebb lenne az alapok elsajátítása?

A program első része kiolvasná a jumperok állását Bináris számrendszerben és a végeredményt majd továbbküldi
(#) watt válasza Csabax hozzászólására (») Jan 15, 2011 /
 
A PIC-et jobban meg lehet érteni ASM-en keresztül(és itt ez a lényeg, nem a nyelv!). Nézz fel az oldalamra, van néhány egyszerű példa a 18F-ekhez ASM-ban.
(#) vilmosd válasza Csabax hozzászólására (») Jan 15, 2011 /
 
Hali
A linken talasz demoboard doksit is.
(#) hackerfish hozzászólása Jan 15, 2011 /
 
Hi!
Az lenne a kérdésem, hogy PIC-kel lehet -e fénykövető robotot készíteni, olyat mint ez:
Bővebben: Link
De nem fotoellenállással, hanem ilyen fotodiódával:
Bővebben: Link?
Csak mert van két ilyenem, régebben vettem, napelemes robothoz akartam felhasználni, de aztán nem lett belőle semmi.
(#) vilmosd válasza hackerfish hozzászólására (») Jan 15, 2011 /
 
Hali
En csinaltam 2 motoros vonal koveto robotot, de az 3 szenzorral volt. De vegulis 2 szenzorral is lehet. Merni kell a szenzorok feszultseget AD atalakitoval, eldonteni melyik a nagyobb, es ez alapjan vezerelni a motorok sebesseget, es forgasiranyat.
(#) hackerfish válasza vilmosd hozzászólására (») Jan 15, 2011 /
 
És a fotodiódát hogyan kell bekötni?
A katódot a bemenetre, az anódot a tápra/Vdd-re?

Első nekifutásra lehet hogy inkább csak ledeket rakok rá, motort nem. És a ledek jeleznék, hogy melyik fesz a nagyobb.
Ha a dolog beválik, jöhet a robot.
(#) vilmosd válasza hackerfish hozzászólására (») Jan 15, 2011 /
 
Hali
Itt talasz egy par kapcsolast fotodioda jelek feldolgozasara.
(#) Csabax válasza icserny hozzászólására (») Jan 15, 2011 /
 
Hali
A mellékletben küldöm amire jutottam, Az mInitAllLEDs-től már bonyolódik.

main2.c
    
(#) icserny válasza Csabax hozzászólására (») Jan 15, 2011 /
 
A konfigurációs bitekre ezeket a beállításokat javaslom. Tessék utánanézni a bitek jelentésének, mert az általad írt kommentek sok félreértésről tanúskodnak, s hiba volt egynél több FOSC sor megadása!
  1. #pragma config FOSC     = INTIO67   // FRC oszcillátor (16 MHz)
  2. #pragma config PLLCFG   = ON        // 4x PLL engedélyezés (4x16 = 64 MHz)
  3. #pragma config PRICLKEN = ON        // Elsődleges órajelgenerátor engedélyezve
  4. #pragma config FCMEN    = OFF       // Fail Safe Clock Monitor tiltása
  5. #pragma config IESO     = OFF       // Belső/külső oszcillátor átkapcsolás tiltása
  6. #pragma config PWRTEN   = ON        // Bekapcsoláskor 62 ms várakozás
  7. #pragma config BOREN    = SBORDIS   // Brown-out Reset hardveresen engedélyezve
  8. #pragma config BORV     = 220       // Reset szint = 2,2 V
  9. #pragma config WDTEN    = SWON      // Watchdog timer szoftveresen engedélyezhető
  10. #pragma config WDTPS    = 256       // Watchdog utószámláló beállítása
  11. #pragma config CCP2MX   = PORTC1    // CCP2 ki/bemenet RC1-hez legyen rendelve
  12. #pragma config PBADEN   = OFF       // Bekapcsoláskor PORTB<5:0> ne legyen analóg
  13. #pragma config CCP3MX   = PORTC6    // CCP3 ki/bemenet RC6-hez legyen rendelve
  14. #pragma config HFOFST   = ON        // Rendszer óra nem vár HFINTOSC-ra
  15. #pragma config T3CMX    = PORTC0    // T3CKI bemenet RC0 legyen
  16. #pragma config P2BMX    = PORTB5    // P2B kimenet RB5 legyen
  17. #pragma config MCLRE    = EXTMCLR   // MCLR (Master reset) bemenet engedélyezve
  18. #pragma config STVREN   = ON        // A verem túlcsordulása RESET-et okoz
  19. #pragma config LVP      = OFF       // Alacsonyfeszültségű programozás letiltva
  20. #pragma config XINST    = OFF       // Kiterjesztett utasításkészlet letiltva
  21. #pragma config DEBUG    = OFF       // Hardveres nyomkövetés letiltva
  22. #pragma config CP0      = OFF       // Kódvédelem kikapcsolva
  23. #pragma config CP1      = OFF
  24. #pragma config CPB      = OFF       // Boot blokk kódvédelem kikapcsolva
  25. #pragma config WRT0     = OFF       // Írásvédelem kikapcsolva
  26. #pragma config WRT1     = OFF
  27. #pragma config WRTB     = OFF       // Boot Blokk írásvédelem kikapcsolva
  28. #pragma config WRTC     = OFF       // Konfigurációs blokk írható
  29. #pragma config WRTD     = OFF       // EEPROM adatmemória írható
  30. #pragma config EBTR0    = OFF       // Táblázatolvasás ne legyen letiltva
  31. #pragma config EBTR1    = OFF
  32. #pragma config EBTRB    = OFF


A "főprogrammal" az a bibi, hogy a PICCOLO projekt ezt a vezérlőt nem támogatja, tehát a makrók helyett azok kifejtését kell beírnod.

Az stdio.h belinkelése itt nem kell. Üdvös lesz viszont a delays.h becsatolása, s a C18 dokumentációkban kell utánanézni a delay1kTCYx() és hasonló függvények használatának. (Az I/O portok c. fejezet 1. listájából is szabad lesni, hogy hogyan lesz az órajelciklusokból milliszekundum - bukta, hogy nálad másodpercenként 12 helyett 16 millió utasításciklus (TCY) van, tehát át kell számolni az időzítést!).
(#) Csabax válasza icserny hozzászólására (») Jan 16, 2011 /
 
Köszönöm a gyors választ , sajnos legkorábban csak kedden tudok nekiveselkedni, utána jelentkezem
(#) Csabax válasza icserny hozzászólására (») Jan 18, 2011 /
 
Küldtem egy PÜ.-t
(#) Csabax hozzászólása Jan 19, 2011 /
 
melyik "C" compilert érdemes feltenni az MPLAB mellé, a 16f88x családhoz?
(#) potyo válasza Csabax hozzászólására (») Jan 19, 2011 /
 
Hi-Tech-et, mivel az a Microchip saját fordítója.
(#) Csabax válasza potyo hozzászólására (») Jan 19, 2011 /
 
köszi
(#) edison14 hozzászólása Jan 21, 2011 /
 
Hali. Szeretnék egy olyan programot készíteni ami a ledeket sorban villantaná fel ahogyan tekerem fel a potit. Az analóg digitális átalakító használatát már begyakoroltam és csatolom az eddig megírt programom. Csak példaszerű segítséget és tanácsokat várok hogy hogyan tudnám ezeket megoldani.

A segítségeteket előre is köszönöm.
(#) potyo válasza edison14 hozzászólására (») Jan 21, 2011 /
 
Ha AD konverzió eredménye kisebb mint 10, akkor LED1 világít. Ha nem kisebb mint 10, de kisebb mint 20, akkor LED2 világít. Ha nem kisebb mint 20, de kisebb mint 30, akkor LED3 világít, stb. LED1 világít, LED1+LED2 világít, LED1+LED2+LED3, stb. Ezt kb. így kell lekódolni is, egymás után összehasonlítva a mérés eredményét a megfelelő értékekkel (aztán lehet optimalizálni a futást, ha kritikus a sebesség, de egyelőre jó ez is).
(#) edison14 válasza potyo hozzászólására (») Jan 21, 2011 /
 
És ezt az összehasonlítást hogyan lehet megoldani assembly parancsokkal? Azt tudom hogy vannak az assemblyben különböző direktívák pl feltételes elágazás de ezeket még nem használtam bár mindig jó valami újat tanulni és készen is állok rá csak még nincs meg a tapasztalat assembly terén .
(#) watt válasza edison14 hozzászólására (») Jan 21, 2011 /
 
Két szám összehasonlítását lehet kivonással(SUBWF,W), vagy XORWF parancsal elvégezni. A művelet után a Z és C bitek jelzik, hogy a két szám egyforma, kisebb, nagyobb-e. A XORWF,W csak azt tudja, hogy egyforma-e vagy sem. Ellenőrzés BTFSS STATUS,Z ill. C Kivonásnál alulcsordulás esetén a C 0! Adatlapot olvasgasd!
(#) edison14 válasza watt hozzászólására (») Jan 21, 2011 /
 
Jójó. Ez szerintem megteszi az induláshoz. Ha valami esetleg nem világos akkor majd írok. Köszi.
(#) vilmosd válasza edison14 hozzászólására (») Jan 21, 2011 /
 
Hali
A konyvtaramban talasz konyveket es mintapeldakat, magyarul es kulfoldi nyeleven. APiclist forumon pedig sokfele matematikai, konverzios, es egyeb trukkoket. Erdemes vegignezni, letolteni a peldakat, es MPLAB-ban szimulalani es ertelmezni.
(#) edison14 válasza vilmosd hozzászólására (») Jan 21, 2011 /
 
Óóóó. Köszönöm szépen a linkeket. Sokat olvasok ezekről a dolgokról csak mivel a suliban elég hülyén vesszük ezért én inkább itthon nekiálltam egyedül tanulni. A suliban elkezdtük a programozást egy LED villogtató programmal utána nyomógombkezelés és itt jöttek a hülyeségek. Elkezdtük a timer0-át. Képzelhetitek hogy a 9 emberből hányan értették. Hát én valamennyire meg egy ember rajtam kívül valamit megértett belőle. Szerintem ez egy kicsit hülye rendszer.
(#) potyo válasza edison14 hozzászólására (») Jan 22, 2011 /
 
Nálunk a villamosmérnöki egyetemen hasonlóan alakultak az arányok. És az a szörnyű, hogy be lehet úgy fejezni a villamosmérnökit, hogy az embernek nem kel pákát fognia a kezébe, nem kell egy 7805-öt bekötni, stb...
(#) trudnai válasza potyo hozzászólására (») Jan 22, 2011 /
 
Szerintem ez minden teruleten igy van. A vegzo kozgazdaszok jo resze eleteben nem konyvelt meg es nem jatszott a tozsden, a szoftver fejlesztok tobbsege nem kodolt, legfeljebb amit a zarthelyin feladtak (ami beadando azt vagy penzert megcsinaltatja vagy megoldatja velunk a forumokon...), az epiteszek tobbsege meg egyszer sem kevert meg betont eleteben sot nem rakott fel csempeket a falra. Az orvosoknal csinaljak jol: Egyetem utan meg kell nehany ev gyakorlat mire megkapja az engedelyt, hogy keshez nyuljanak... igy kellene ez mindenutt...
(#) edison14 válasza trudnai hozzászólására (») Jan 22, 2011 /
 
Sajnos ez van. Aki meg akarja tanulni az csak saját magára számíthat. Javasoltam a tanáromnak, hogy ne menjünk bele a timer kezeléébe de hát hallgat is az rám. Erre volt egy nagy válasza, hogy a tanterv szerint kell mennie. Namost tudjátok kik állítják össze a tantervet. Hát azok akik bőrszékben ülve igazgatják a dolgokat és azt sem tudják hogy mi az a PIC és mi az a programozás. Na ez itt a legnagyobb baj.
(#) Atielektro hozzászólása Jan 22, 2011 /
 
Sziasztok!

A segítségeteket szeretném kérni. Írtam egy kódot C-ben (Hi-Tech a fordító ) egy 16F628A-s picre és a felprogramozás során elhalálozott az uC. Mivel utánépített PicKit 2-van, így a PicKit 2 külön programját használtam. A programmemóriát szépen teleírta a progival, de a programozás végén kiírt valami ilyesmit, ha jól emlékszem, hogy "Verification of Configuration Word is failed". Sajnos én balga nem fényképeztem le a hibaüzenetet...Azóta fel sem ismeri a PicKit 2 progija a pic-et. Megpróbáltam egy másik 628a-sal és azt is sikerrel tönkretettem Sajnos nekem ötletem sincs, hogy mi lehet a baja. Gondoltam, hátha valahogy elírta az LVP bitet és ezért nem tudom felismertetni, de az MpLab-ban visszanézve 0-ban van. Más ötletem nem lévén, kérlek titeket adjatok valami tippet, hogy mit ronthattam el. Csatoltam a kérdéses projektet. Valószínüleg vannak benne hibák, mert nem vagyok a C mestere, meg van még egy-két dolog, amit módosítanék még rajta amúgy is.
Előre is köszönöm a segítségeteket!
(#) watt válasza Atielektro hozzászólására (») Jan 22, 2011 /
 
Melyik PK2 klónod van? Mértél feszültségeket a Vpp, Vdd vonalán?
10k-s ellenállás van a PIC Vpp, és Vdd lába között a panelon, amin programoztad a PIC-et?
Próbáltad törölni és BlankCheck-et nyomni?
Vpp first módban próbáltad törölni?
(#) Hp41C válasza Atielektro hozzászólására (») Jan 22, 2011 / 3
 
Szia!

A következőket programoztad be:
- belső órajel megy a kontroller, MCLR letiltva,
- a program és az adat memória kiolvasás védett,
- a program a belső ram törlése után a RB7 és RB6 lábakat kimenetnek állítja be.

A programozás közbeni ellenőrzés még sikerül, mert ekkor még nem programozza be a PICKit2 a konfigurációs biteket. Miután a konfigurációs biteket is beállította, a további kiolvasásokat már tiltja a kódvédelem.

A tápfeszültség bekapcsolása után a program azonnal elindul és elég hamar kimenetnek állítja be a PGC és PGD lábakat.

A fentiek miatt nem lehet a programját kiolvasni és nem tud a programozó hozzákapcsolódni.

A PICKit2 saját kezelő programjában van egy lehetőség (MpLab miért nem használja ???) az ilyen kontrollerek programozását is. A használatához az kell, hogy a kontroller tápját a PICKit2 adja:

A programot töltsd le, telepítsd. Csatlakoztasd a PICKit2 -t a géphez, de ne legyen a 16F628(A) a PICKit2 -hoz csatlakoztatva. Indítsd el a kezelő programot. Ezek után csatlakoztasd a 16F628(A)-t. Állítsd be a Tools / Use Vpp first program entry módot. Ezután ismertesd fel a kontrollert a Devide Family / Midrange / Standard menüponttal.

A kontrollert csak az Erase parancs segítségével tudod megmenteni. A törlés után a programból lépj ki. Indítsd újra a kezelő programot, olvasd ki a kontrollert. Ime: egy törölt, újra használható kontroller.

A C programban tiltsd le a program és az adat memória kiolvasásvédelmét. Ha lehet, a MCLR lábat hagyd meg az eredeti funkcióra - ekkor az MpLab is fogja programozni. Ha a MCLR lábai mégis bemenetnek szeretnéd felhasználni, akkor a program elejére tegyél be néhány 10 ms várakozást az RB7 és RB6 kimenetté kapcsolása elé.
(#) Atielektro válasza Hp41C hozzászólására (») Jan 22, 2011 /
 
A Use Vpp first mód használatával megoldódott a problémám, sikerült a pic-et újra olvasnom/írnom. Köszönöm mindkettőtöknek a segítséget! Eddig nem is ismertem ezt a programozási módot, de hála a leírásodnak, meg utána olvastam egy kicsit, már értem mire is jó ez.
(#) szitko hozzászólása Jan 25, 2011 /
 
Sziasztok.
Egy progin dolgozom és ahoz kérnék egy kis segítséget. Egy portba bemenő jelet kellene figyelni, abból is csak a H szintet, aminek a szélessége folyton változik. Nekem csak egy bizonyos szélességü jelnél kellene egy másik, kimenő portot H-ba billenteni. Namost egy darabig eljutottam csak nem vagyok biztos a dolgomban. Ha valaki átfutná nagyon megköszönném.

reszlet.txt
    
(#) watt válasza szitko hozzászólására (») Jan 25, 2011 /
 
A logika még lehet jó is, de arra nem gondoltál, hogy egy bájtba 255-nél nagyobb szám nem fér.
Egyébként az ilyen feladatot CCP modul capture módjával szokták megoldani, esetleg egy számlálóval, amit a jel elején és végén kiolvasnak, kivonnak, ellenőriznek, kész.
Ehhez az is kell, hogy a számláló ne számoljon túl gyorsan, mert túlcsordulhat. Ha nagy felbontás kell, akkor gyorsan kell számlálni még is, ekkor figyelni kell a számláló túlcsordulásait(pl. a számláló megszakÍtásában.), számolni azt is, és szorozni, összeadni a végső résszel. Nem kimondottan kezdő feladat, de egy kis logikával menni fog.
Következő: »»   84 / 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