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   83 / 1210
(#) Huby válasza icserny hozzászólására (») Jan 7, 2011 /
 
Van egy ilyen képem, a lábak kimenetei,vagyis találtam: Bővebben: Link

Akkor majd ha meglesz,simán rákötöm sorba a 6 kimenetet ide egy olyan dugaszolós kábellel,és más teendőm nincs is?(A többi láb is megeggyezik?)

Mert,ha igen,akkor az nagyon jó Valami ellenállás ilyesmi?
(#) vilmosd válasza Huby hozzászólására (») Jan 7, 2011 /
 
Hali
A 16F887 (ami jobb valasztas) 480+ifa. A 16F887A 1200+ifa. A textool foglalat luxus. Veguli ha mar megvetted akkor ezt hasznald. A panel annyibol jo, hogy szepen meg van csinalva, es nem kell vele foglalkozni. De ennyi penzert azert aki meg tudja csinalni annak toredekebe kijon. Viszont a PK2 debug expressz tartalmazza a probapanelt + programozot es az nincs 60$.
(#) El_Pinyo válasza Huby hozzászólására (») Jan 7, 2011 /
 
Még kábel sem kell, közvetlenül összedughatóak. Persze, ha úgy kényelmesebb, meg is hosszabbíthatod vezetékekkel is. Azért túl hosszúak ne legyenek, mert az programozás és nyomkövetés során probléma forrása lehet.
(#) vilmosd válasza icserny hozzászólására (») Jan 7, 2011 /
 
Hali
Persze ha mar megvette, hasznalja. Az igaz, hogy ennyi penzert panel, textool foglalatot, USB RS232 csatikat beszerezni, osszerakni, feleleszteni bitos lassabb. Akinek nincs gyakorlata annak igy konnyebb.
(#) Huby válasza El_Pinyo hozzászólására (») Jan 7, 2011 /
 
Köszönöm szépen mindenkinek!
akkor ez 25.-éig szünetel a dolog.
Akkor a panelon az a rész direkt ehhez lett kitalálva.
Nagyon rendesek vagytok, csak így tovább!!!
(#) watt válasza zsoltee0001 hozzászólására (») Jan 7, 2011 /
 
Nézd meg, hogy a Fast Programming pipa bent van-e. Ha igen, vedd ki és próbáld meg úgy égetni. A Vpp first módot is így próbáld.
(#) zsoltee0001 válasza watt hozzászólására (») Jan 8, 2011 /
 
Sajnos ez sem hozott eredményt.
Fura, hogy csak írni nem tudja, pedig minden feszültség ok (Vdd 5,11 Vpp 12,1 Volt)
Ha azt a HEX-et töltöm be ami eredetileg is rajta van, akkor simán végigfut az írás, hiba üzenet nélkül.
Persze ilyenkor se ír, csak azt hiszi, mert visszaolvasáskor ugyanazt olvassa ami benne volt.
Üdv
(#) watt válasza zsoltee0001 hozzászólására (») Jan 8, 2011 /
 
Teljes törlés után mit olvasol vissza?
(#) zsoltee0001 válasza watt hozzászólására (») Jan 8, 2011 /
 
Ugyan azt, ami rajta van, illetve ami bele lett égetve.
Egyébként egy pillanatra megfogalmazódott bennem a kérdés, hogy biztos F szériás-e a PIC, de aztán eszembe jutott, hogy volt már írva aznap párszor.
(#) brenato hozzászólása Jan 14, 2011 /
 
Üdvözletem!

1 piccel szeretnék több hőmérséklet érzékelő chippel kommunikálni, de az
#use i2c(Master,Fast,sda=PIN_B4,scl=PIN_B3);
sornál ugye fixre meg kell adnom, hogy melyik lábakon van az i2c.
Akkor ezesetben az a teendő, hogy minden hőmérő chipet külön piccel ki be tudjak kapcsolni és az összes i2c lábat rákötni az i2c buszra? Vagy miként megoldható mindez?
Köszönöm!
(#) kissi válasza brenato hozzászólására (») Jan 14, 2011 /
 
Szia!

Olvasd el az IIC leírását: az eszközöknek címeik vannak és úgy különbözteti meg !

Steve
(#) Csabax hozzászólása Jan 14, 2011 /
 
icserny-nek válasz
először is megpróbálok válaszolni a bűneimre:
5, most is nyitva a honlap de nekem úgy tünt hogy inkább ASM mint C ( hittem hogy C-ben könyebb)
6, természetesen syntax error
1, a config és include beállítást neten leltem de szótár segített a megértésben
2,3,4 -re kérek szépen kb 1/2 órát és commentben beírom a szerintem jelentését
előre is köszönöm a segítséget
(#) vilmosd válasza Csabax hozzászólására (») Jan 14, 2011 /
 
Hali
Kezdoknek ajanlanam a PIC-es konyvek olvasasat. A PIC lelkivilagaval valo ismerkedest erdemesebb ASM-mel kezdeni, mert igy jobban meg tudod erteni a felepiteset. A magasabb szintu nyelvek sokat eltakarnak a belso felepitesbol, es igy nem jossz ra az alapveto inicializalasi, beallitasi muveletek fontossagara. Majd ha jobban ismered a regiszterek rendszeret jelenteset, lehet tovabb menni a magasabb szintu nyelvek fele. Altalaban sokan igy kezdtuk a uC-k programozasat.
(#) icserny válasza Csabax hozzászólására (») Jan 14, 2011 /
 
Idézet:
„kérek szépen kb 1/2 órát”
Ebben nem lesz hiány, mert holnap estig nem leszek gépközelben...

CONFIG biteknél fontos az LVP = OFF, XINST = OFF, DEBUG = OFF, WDTEN = SWON (ez utóbbi jelentése: induláskor letiltva de szoftveresen engedélyezhető).
(#) trudnai válasza Csabax hozzászólására (») Jan 15, 2011 /
 
Idézet:
„a = 1 if AN0 = 1”


Ez milyen nyelven van irva is mit szeretne jelenteni? Valami ilyesmit?

  1. if ( a == 1 ) {
  2.     AN0 = 1;
  3. }
(#) brenato hozzászólása Jan 15, 2011 /
 
Sajnos még mindig nem értem az i2c dolgot. Miként címezhetném a teljesen egyforma LM75 IC-ket???
(#) kissi válasza brenato hozzászólására (») Jan 15, 2011 /
 
Az adatlap szerint ez az IC címe : 1 0 0 1 A2 A1 A0,

az A0,A1 és A2 biteket Te állíthatod be az adott KÜLSŐ! lábak (5,6,7 ) segítségével! Ez azt jelenti, hogy 8 különböző címet tudsz kialakítani --> 8 eszköz lehet ugyanazon IIC áramkörön ebből a típusból!

Steve
(#) Csabax válasza trudnai hozzászólására (») Jan 15, 2011 1 /
 
csak sima "ha" pl ha AN0 bemenete 1 (magas) akkor az "a" legyen 1 ha AN1 bemenete 1 akkor a "b" legyen kettő
stb.. és a végén adja össze. binárisból értékekből szeretnék decimális értéket kapni úgy hogy a végén pl: s=a+b+c+d+... De lehet hogy 1xübb megoldás is ennél.
(#) BarnaPili hozzászólása Jan 15, 2011 /
 
Sziasztok!
Most kezdtem PICelni,egy 16F877A-n gyakorolok.A LED villogtatás,futófény,ilyesmi más/igaz puskázva/ már megy,nem csak bemásolva,hanem értem is ,mi mikor történik.
Amire kíváncsi vagyok: Hogy lehet egy AD átalakítás eredményét/feszültségmérés/ eredményét 7 szegmenses LED kijelzőkkel kiíratni?Találtam PICes mérőműszereket,de amik nekem vannak,azok C-ben íródtak,nem tudom lekövetni,mikor mi történik.Ha valamelyőtök leírná,vagy belinkelné,hálás lennék.Alulra betettem a gyakorló összeállításomat.
Köszönöm!
István
(#) Baxi válasza BarnaPili hozzászólására (») Jan 15, 2011 /
 
Hi
Ez 16f876 re van írva. Anno még a suliba csináltuk.
Ez AD átalakítás megszakításkarélemmel táblázattal és hétszegmenses kijelzővel.
Ha a logikát visszafejted akkor már áttudod alakítani a tiedéhez.

AD_2_POTI.ASM
    
(#) BarnaPili válasza Baxi hozzászólására (») Jan 15, 2011 /
 
Köszönöm! Nekiugrok,aztán kérdezek.
István
(#) Moderátor hozzászólása Csabax hozzászólására (») Jan 15, 2011
 
Csabax:

Ugorj neki légyszíves még egyszer. Próbáld meg használni a kis és nagybetűket, nem egybeírni az írásjeleket és hanyagolni az ilyeneket: 1xűbb.

Ez egy igen magasan kvalifikált szakmai fórum. Igazodj hozzá kérlek.
Nem irodalmi fórum vagyunk, de nem is analfabéták gyűjtőhelye.
(#) watt válasza BarnaPili hozzászólására (») Jan 15, 2011 /
 
A 7szegmenses kilyelzők esetében két részre lehet bontani a dolgot.
Az egyik a szegmensek/digitek frissítése, ami automatikusan kell fusson, hiszen elvileg egyszerre csak egy digit szegmensei világítanak, ezért a multiplexelést folyamatosan kell folytatni digitről, digitre. Ezt megszakításban érdemes megoldani.

A másik a megjeleníteni szükséges karakterek táblázata, amiből a frissítő rutin kiolvassa a szegmensek állapotát az adott karakterhez. Ezt a flash memóriába a program mellé szoktuk tenni egy táblázatba. A táblázat indexe(címe) alapján a megjelenítő ki tudja olvasni a megfelelő szegmensek állapotát. A megjelenítő rutinnak csak a megjelenítendő karakterek címét kell átadni, a többit már ki tudja olvasni a táblából.

Hogy a táblába mi kerüljön gondolom nem túl bonyolult, hiszen egy digitet 1 bájt le tud írni, még egy bit marad is. Nem csak számok lehetnek a táblában, hanem jelek is természetesen, illetve bármi, amit meg lehet jeleníteni a 7 szegmensen. Ha van pont is, az is belefér a bájtba.

Azt, hogy mi jelenjen meg annyi bájt(RAM változó) írhatja le, ahány digit van. Ezeknek a bájtoknak a megjelenítendő karakterek táblázatbeli címét kell tartalmaznia. A megjelenítő a megszakításban sorban kiolvassa a címeket, majd a címekről a szegmens adatokat és kiteszi a portra, ami a LED-eket kigyújtja, vagy eloltja. A következő megszakítás a következő digittel teszi ugyanezt. Hogy ne villogjon, 50...100szor kell ezt elvégezni, tehát ilyen ütemű megszakítást kell beállítani valamelyik timer-rel. (Lehet megszakítás nélküli megoldás is, de szerintem az macerásabb.)
(#) brenato válasza kissi hozzászólására (») Jan 15, 2011 /
 
Értem, köszönöm!
(#) vicsys válasza watt hozzászólására (») Jan 15, 2011 /
 
Attól függ, mennyi feladat van (és mennyi időt vesz el) még a kijelzésen kívül. Ha nincs sok munka, simán belefér a főprogramba és lehet szimplán pollingozni. Néha az egyszerűbb a jobb. A megszakítás meg elegánsabb és nem kell tartani attól, hogy majd villogni fog.
(#) watt válasza vicsys hozzászólására (») Jan 15, 2011 /
 
Igen, egyetértek. Én szinte mindig a megszakításos megoldást választom, mert általában másra is jó ugyanaz az ütem, pl 100Hz. (Prell mentesítés, a megjelenítés változásának üteme(hogy nem ugráljon gyorsan egy karakter), stb.) De ha valami másra kéne a Timer, akkor marad a szerintem macerásabb megoldás. Azért macerásabb, mert bele kell fűzni a program menetébe a megjelenítést. Nem lehet várakozni sehol, bár azt amúgy sem illik, de van mikor másképp nem lehet, vagy ha lehet, azt is ütemezni kell, azaz újra megszakításban kell az ütemet megoldani, vagy órakutyával. De hát ez a szép ebben szerintem...
(#) BarnaPili válasza watt hozzászólására (») Jan 15, 2011 /
 
Köszönöm mindenkinek.Belemélyedek.Ez egysima feszültség és árammérő akar majd lenni,átkapcsolható kijelzéssel,automata méréshatár váltással,tápegységhez.ICL7107-el egyszerűbb lenne,de akkor nem tanulnék belőle semmit.
Szerintem még kérdezek.Most földolgozom a kapott infókat.
István
(#) vilmosd válasza BarnaPili hozzászólására (») Jan 15, 2011 /
 
Hali
Itt lejjebb kuldtem a masik kolleganak egy linket, ahol talasz PIC konyveket. Ott talahatsz mintapeldakat is.
(#) trudnai válasza Csabax hozzászólására (») Jan 15, 2011 / 1
 
Ja, ertem, akkor valami hasonlo kellene neked:

  1. if ( AN0 == 1 ) {
  2.     a = 1;
  3. }


De hangsulyozom most csak a szintaktikara irtam ezt, nem tudom, hogy milyen C-ben dolgozol, es, hogy ez az AN0 akkor mire vonatkozik. De amugy a kododbol olyba tunik, mintha analog bemenetkent szeretned hasznalni, akkor pedig nem kozvetlen a pin-rol kellene kiolvasni az adatokat. Ha pedig digitalis bemenetkent szeretned hasznalni, akkor erdemes lenne elgondolkodni, hogy ne pinenkent, hanem az egesz portot egyszerre beolvasva vegezd azt el. Akkor az osszeadasokat is megusznad...

Amit javasolnek elso korben, hogy a C-vel kicsit foglalkoznod kellene (ha mar mindenkeppen C-vel szeretned a PIC-et megtanulni). Ha mar tudsz PC-n (windows, vagy linux alatt) kis C programokat irni onalloan, amik mukodokepesek is, akkor lenne erdemes megnezni egy PIC-es C implementaciot, hogy arra hogyan kell fejleszteni, egyaltalan mi az a PIC, hogyan kell beolvasni a portrol az adatokat stb.
(#) Csabax válasza (») Jan 15, 2011 /
 
Elnézést kérek.
Ezentúl figyelek az írásomra.
Következő: »»   83 / 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