Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   624 / 1319
(#) tamibandy válasza icserny hozzászólására (») Dec 17, 2009 /
 
Szia,

Közben megtaláltam én is a felinstalált könvtárban.

Most még beleolvasgatok a MPi-c által emlitett docs nevü mappában található dokumentumokba, hogy sokat ne bohockodjak itten az amatőr kérdéseimmel.

Köszi mindenkinek a segitséget.

Addig is ha valaki tud vm jó megoldást a potenció méteres tervemre szivesen elolvasnám.

Üdv,
András
(#) icserny válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
Idézet:
„A PIC-em adatlapja megvan, de maga a plákáé nincsen.”
A mié nincsen?!?! Feltételezem, hogy valami demópaneled van, aminek neve is vann. Ennek alapján megtalálható valahol a kapcsolási rajza is. Ellenkező esetben kövesd a vezetéket, aztán valahol csak véget ér...

Egy biztos: mi a távolból nem tudjuk kitalálni, ha nem adsz további információkat.
(#) tamibandy válasza icserny hozzászólására (») Dec 17, 2009 /
 
Szia,

Jaj elnézést.

PICkit 2 Debug Express Panelem van.

Kaptam egy A2D pelda programot:

  1. /* Sample code to set up the A2D module */
  2. void init_a2d(void){
  3.         ADCON0=0;       // select Fosc/2
  4.         ADCON1=0;       // select left justify result. A/D port configuration 0
  5.         ADON=1;         // turn on the A2D conversion module
  6. }
  7.  
  8. /* Return an 8 bit result */
  9. unsigned char read_a2d(unsigned char channel){
  10.         channel&=0x07// truncate channel to 3 bits
  11.         ADCON0&=0xC5;   // clear current channel select
  12.         ADCON0|=(channel<<3);   // apply the new channel select
  13.         //ADGO=1;       // initiate conversion on the selected channel
  14.         //while(ADGO)continue;
  15.         return(ADRESH); // return 8 MSB of the result
  16. }
  17.  
  18. main()
  19. {
  20.         TRISD = 0x00;
  21.         int j = 1500;
  22.         unsigned char x;
  23.         init_a2d();
  24.         while(1)
  25.         {
  26.                 x=read_a2d(1);
  27.                 for(int i=0;i<j;i++)
  28.         }
  29. }


Ez még egyelőre nem müködik nekem helyesen. Lehet mert nem az adott cimről olvasom le az értéket, mert ha elinditom a programot akkór felgyúl nekem a 4. és a 6. LED.

Üdv,
András
(#) icserny válasza tamibandy hozzászólására (») Dec 17, 2009 /
 
A PICkit2 Debug Express demókártyájának itt található a felhasználói kézikönyve. A kapcsolási rajz és a panelrajozolat szerint RA0-ra van kötve a potméter.

A mellékelt példaprogramot nem tudom, hogy honnan kaptad, de van egy sanda gyanúm, hogy változtatás nélkül nem fog működni. Nézd meg az adatlapból, hogy melyik regiszterbe mit kell beírni (kétség esetén biztosan segít valaki). Nézd meg, hogy az AN0 használatához melyik csatornát kell kiválasztani! (A demó kártya 4. és 5. leckéjéből is szabad "lesni")
(#) bec1234 válasza norby1 hozzászólására (») Dec 17, 2009 /
 
közben megtalálltam a hibát. a max232 nem ment bele jól a próbapanlba, a hibát kiküszöbölve beleraktam az ic-t egy preciziós dip foglalatba és aztán raktam bele a dugdosós próbapanelba,
javaslom mindenkinek, a bajomból okulva, hogy ha ic-t raksza dugdósós próbapanelbe, akkor használj ic foglalatott

most tökéletesen működik minden
köszönöm a tanácsokat
(#) dolfin hozzászólása Dec 17, 2009 /
 
Üdv

Lenne egy elméleti kérdésem. Nem forráskódot és programot szeretnék hanem csak az elvét megtudni: Egy IR vevőt (SFH5110) csatlakoztattam egy PIC (16f628a) B5 lábára (IOC lehetséges rajta, ha szükséges). Hogyan tudom egy IR adó (pl távirányító) jelét venni és a küldött byte-ot beírni egy változóba? (mármint tudni szeretném hogy mit küldött az IR adó) Remélem érthető
Tehát nem konkrét program kell hanem csak az elve. Pl: Ugye tudom hogy a Philips szabványú adó 1 bit-et 1.778ms alatt ad le (manchester szerint 2x889us). Akkor úgy megoldható e hogy: IOC-re veszem hogy felfutó ágat nézze ekkor megszakítás lesz és 889us-onként nézem a B5 láb értékét? Addig nop és vizsgálom hogy 1-es után 0 kell és 0 után 1 (adatbitenként) ha nem akkor hiba, ha igen akkor a bitet eltárolom. Ilyen analog módon megoldható?
Ti milyen elv szerint csináljátok ezt a programrészletet?
Köszi
Dolfin
(#) Hp41C válasza dolfin hozzászólására (») Dec 17, 2009 /
 
Szia!
:google: keresőjébe írd be "RC5 protocol" és a temérdek lap közül válogathatsz.

Egyébként a TSOPxxx, SHFyyy vevők infra jel vételénél alacsony egyébként magas szintet adnak ki, ld. adatlapjuk.
A vett jel alacsony és magas periódusainak hosszát figyelve, vagy a startbit hosszából kiszámított, a startbit végétől mért időpontokban mintát véve a jelből a küldött parancs két változóból kialakított 16 bites regiszterbe léptethető be.

Szia
(#) dolfin válasza Hp41C hozzászólására (») Dec 17, 2009 /
 
Üdv

Az RC5 szabvány az megvan. Csak még sose írtam vevő protokollt, de akkor kb jól gondoltam. A startbittől (mint a hozzászólásodból kiderült invert jel megy a PIC-re) 889us-onként mintát véve nézem a láb állapotát és 16bit-ben tárolom.
Köszi
(#) potyo válasza dolfin hozzászólására (») Dec 17, 2009 /
 
Arra azért vigyázz, hogy elsőre ne 889us-ot várj, hanem csak a felét, hogy utána a bitidő közepénél nézd majd a jelet.
(#) dolfin válasza potyo hozzászólására (») Dec 17, 2009 /
 
Igen, köszi. Logika szerint...
(#) bubu válasza icserny hozzászólására (») Dec 17, 2009 /
 
Szia,
Köszi a választ.
SM buszt szeretnék leprogramozni. Ahoz kellene.
Esetleg ha valaki már csinált ilyet akkor a segítséget örömmel veszem.
A SW I2C - hez hasonló, csak mégis más...

Mégegyszer köszönöm!
(#) gulasoft válasza potyo hozzászólására (») Dec 18, 2009 /
 
Kicsit el voltam havazva, most jutott időm elolvasgatni a válaszokat.
Gondoltam, hogy nem véletlenül van ott, az explorer 16-oshoz adott kártyákon is rajta van alapból, csak gondoltam ezt is leírták valahol, csak átsiklottam felette, de ezek szerint triviális, ezért nem is írják le sehol.
Köszi a választ.
(#) gulasoft válasza watt hozzászólására (») Dec 18, 2009 /
 
Már meg ne sértődj de egy mikroprocesszort elektronikai eszköznek degradálni olyan, mintha a pc-re azt mondanád, hogy az is csak elektronikai eszköz (hiszen egyébként tényleg az, de annál azért több)
Szerintem többféle ember használ pic-et. Vannak a bitfaragók akik a 128k-s 40 meg 80Mips-es picet is asm-ben (érts itt az assembly nyelvet ez alatt) programozzák, merthogy az egy elektronikai alkatrész, és az asm az amivel minden bitet saját magad ellenőrzöl, és van (biztos kevesebb ember) akit az elektronikai rész annyira érint csak hogy elinduljon, és lehessen programozni.
Én ez utóbbi vagyok, nem vágom a ttl ic-k tranzisztorok erősítők és mátrixok lelki világát, mert 22 éve elektronikai műszerészként végeztem, de azóta nem láttam egy erősítőt mióta vizsgakérdésnek volt feladva méretezés.
Leérettségiztem és azóta programozok.
Most hogy cnc vezérlést gyártok, megnézem a meghajtó chip adatlapját, és megépítem. Megépítettem a 3,3V-os rs232 illesztőt is adatlap alapján, és még szintillesztőt is csináltam adatlap alapján a 3.3V és az 5V közé. Egyikhez sem kellett 3 diplomát lerakni elektronikából, meg mátrixillesztésből, és mégis kezd összeállni, már a 2.0-ás vezérlőt építem amiben lesz áramkorlát poti, meg tartóáram poti.
Minden adatlapon található példarajz tartalmazza a szükséges szűrőkondikat is, szerintem a mikrochip sem halt volna bele ha egyértelműen leírja a tápfeszültség résznél ezt is, ám mégsem tették ezért kérdeztem nem Én néztem e be valamit.
Egyébként egyetlen megépített elektronikával sem szívtam annyit mint a programozással. Eddig amit csináltam mind elsőre működött, kivéve a pic-et, pont a microchip fent említett hiányossága miatt (meg volt a voltage regulatoros rész a tantál kondival probléma ami viszont le volt írva, ott én voltam a vakegér, és nagyon segítő hozzászólások alapján el is indult a pic).
Most ott tartok, hogy a kommunikációs protokolt kell kitalálnom a pic és a pc között, illetve a mechanikából még csak az x tengely van meg.
A fentiekből következően nem is vetemedek arra, hogy mindezt asm-ben írjam meg, rövid áttekintés után áttértem a c-re. Mennek az interrupt kezelések, mikroc-ben 3 sor egy rs232 kezelés, 3 sor egy lcd kezelés, c30-ban kicsit több, de még azzal is elfogadható és átlátható a kód, és nagyságrendekkel gyorsabban megírható mint asm-ben.
Persze tudom, számodra ez leginkább egy elektronikai alkatrész, de tudomásul kel venni, hogy 24-esek és 32-esek már olyan gyorsak, és annyi memóriát tartalmaznak, hogy a bitfaragást meghagyom olyanoknak akik az utolsó morzsáig kihasználják a 40Mips-et, nekem elég a c fordító által generált sebesség is, és nem kell értenem a mátrixillesztés rejtelmeihez.
Láttam Attila86 meddig jutott el az asm-el, a delayt ciklusokkal oldotta meg interruptok helyett (első asm példáim nekem is ilyenek voltak, nincs mit szégyelni rajta, nem kritikaként írtam, csak példaként). Az eagle 3d-s alkatrészek sok idejét elvették (egyébként szenzácós munka érdemes megnézni), és most azokat a pic-ezés miatt hagyta abban, mert ha valaki az asm-ben akar elmélyedni, és azzal akar pic-et programozni, az nagyon nagyos sok idejét el fogja venni.
Mindemellett nagyra értékelem és becsülöm a szakmai hozzáértéseteket, nem hiába szoktam időnként ha megakadok itt kérdéseket feltenni, és tényleg ne értékelje senki kritikaként amit írtam, csak fogadjátok el, hogy vannak olyanok is akik a programozási részére izgulnak rá nem az elektronikai részre, és esetleg időnként felmerül egy egy nektek alapvetőnek tűnő kérdés, és a keresővel nem talál rá az ember választ, és ez mégis csak a Pic miértek és hogyanok fórum nem pedig a ttl áramkörök meg mátrixillesztések fóruma.
(#) szilva válasza dolfin hozzászólására (») Dec 18, 2009 /
 
Már írtam párszor erről, lehet, hogy pont ebben a topicban is, de van pár IR távirányítós topic is itt, a HE-n. Én vagy 2 éve csináltam egy univerzális távirányító-vevőt PIC-kel, az az élváltások között eltelt időt mérte, és egy táblázatból kereste vissza a megfelelő kódot.

Az élváltások közti időt legjobb timer-rel mérni, pl. a timer0-t folyamatosan futtatva az élváltáskor kiolvasni az állását, és ebből kivonni az előző élváltáskor kiolvasott, és eltárolt állást. Az élváltás figyeléséhez jó az IOC, vagy akár lehet tight loop is, ha más dolga nincs a PIC-nek. A dekódoláshoz szükséges táblázatot én egy PC-n futó programmal állítottam össze, így gyakorlatilag bármilyen kódolású távirányítót meg lehetett tanítani neki.
(#) szilva válasza gulasoft hozzászólására (») Dec 18, 2009 /
 
Teljesen világos, amit írsz, és érthető az álláspontod is, ami szerint sokan a PIC-ek programozhatóságára "izgulnak rá". Ettől eltekintve azért azt tényleg érdemes leszögezni, hogy az a szerencsétlen PIC valóban egy elektronikai alkatrész, alapvető (digitális) elektronikai ismeretek nélkül elég nagy kínlódás elindítani, hogy csak a programozás részét élvezhesse az ember.

Szerintem watt is inkább erre gondol, amikor "a PIC egy elektronikai eszköz"-t emlegeti, és nem feltétlenül amellett akar érvelni, hogy mindenki mindig ASM-ben programozza a PIC-eket. Nincs is értelme, egy komplexebb feladatnál már igencsak meggondolandó, hogy inkább egy kényelmesebb programnyelven álljon neki az ember, ami esetleg magában hordozza azt, hogy megszenvedsz egy-két, valóban szükséges "bitfaragás" implementálásával az adott környezetben, mint ASM-ben, ahol tényleg minden a kezedben van, viszont érezhetően lassabb a programfejlesztés.

Emellett azért az sem elhanyagolható, hogy a magasabb szintű programnyelvek által generált kód csak közeíti az optimálisat, az ASM-ben megírt szinte kivétel nélkül hatékonyabb, és ez tulajdonképpen igaz a PIC minden erőforrásának kihasználására. Természetes, hogy a nagyobb telejsítményű családoknál ez egyre kevésbé szempont, és egyre inkább a gyors és kényelmes fejlesztés felé billen a mérleg. Nagyon sajnálatos egyébként, hogy a hobbisták számára sincs ingyenesen elérhető, jól használható C fordító a kisebb PIC-családokra, biztos, hogy ez is közrejátszik.

Én próbáltam 16F-eken a CCS illegális változatát, valamint a 16F és 18F családon a Hi-Tech Pro teljes funkcionalitású próbaverzióját, azok nem voltak rosszak, de az ingyenesen elérhető fordítókkal nagyon nem voltam megelégedve. Most itt is van egy határeset, az SDCC, próbálom ráerőszakolni magam a megszeretésére. Én ugyanis nem szívesen használok illegális cuccokat, főleg nem úgy, hogy a velük készült dolgokat publikáljam.

Azt határesetnek tartom, hogy az LCD-s, hőmérős órámban CCS-ben írt progi fut, és megmondom őszintén, hogy azért nem készült belőle a mai napig cikk, mert az illegális fordítóval készült firmware-t nem akarom publikálni. Pedig lenne miért, mert érdekes megoldások vannak benne, amiből akár még tanulni is lehetne. Ha lesz időm, és valamelyik legális fordítóra át tudom majd írni, akkor lesz belőle publikáció is.
(#) gulasoft válasza szilva hozzászólására (») Dec 18, 2009 /
 
Persze hogy kínlódás elindítani, mert a microchip az adatlapban nem tesz közzé egy tisztességes bekötési példát, szűrőkondikkal, minden bekötött táp és vdd lábakkal hanem csak a minimumot odabiggyeszti a leírás közepére, azután ha átsiklasz felette, akkor magadra vess. Ha minden chip leíráshoz a végén lenne egy példa bekötés, az a rengeteg típus miatt így visszamenőleg már persze nagy feladat lenne, de talán az elejétől így kellett volna csinálni.
Azért jó ez a fórum, mert amit elfelejtettek leírni azt itt már biztos megoldotta valaki tapasztalati úton.
(#) icserny válasza gulasoft hozzászólására (») Dec 18, 2009 /
 
Idézet:
„Persze hogy kínlódás elindítani, mert a microchip az adatlapban nem tesz közzé egy tisztességes bekötési példát, szűrőkondikkal, minden bekötött táp és vdd lábakkal hanem csak a minimumot odabiggyeszti a leírás közepére, azután ha átsiklasz felette, akkor magadra vess.”

No, és ki akadályoz meg abban, hogy egy alkalmazási mintapéldát vagy valamelyik demókártya kézikönyvét fellapozd?
(#) laller25 hozzászólása Dec 18, 2009 /
 
Sziasztok!
MPLAB-mcc18 v3.33 integrálással küzdök feltelepül, de nincs benne a p18f45k20.lkr (demoboard on lévő pic) ez hogy lehet? Pickitt3 debug-om van és 8.36os MPLAB
valakinek ismerős a probléma? Kérlek oszd meg !
Köszi!!
(#) kisszee válasza laller25 hozzászólására (») Dec 18, 2009 /
 
Hello!

Ezt: Bővebben: Link és ezt: Bővebben: Link próbáltad ?

szerk.: Első linkben icserny hozzászólását is olvasd el kettővel a kijelölt alatt.
(#) icserny válasza laller25 hozzászólására (») Dec 18, 2009 /
 
Idézet:
„nincs benne a p18f45k20.lkr”

1. Újabban 18f45k20_g.lkr-nek hívják
2. Miből gondolod, hogy "nincs benne"?
(#) laller25 válasza icserny hozzászólására (») Dec 18, 2009 /
 
Kerestem de nem találtam, köszi a segítséget!
(#) icserny válasza laller25 hozzászólására (») Dec 18, 2009 /
 
Nálam az MCC18/bin/LKR mappa a lelőhelye
(#) laller25 válasza kisszee hozzászólására (») Dec 18, 2009 /
 
Nem tudom beállítani az mplabot úgy hogy működjön!!
mcc18 as forditót kellene használnom a példaprogi használatához de nem engedi feltelepíteni magát!
Nem akarom elhinni h az mplab ennyire bonyolult vagy csak én nézek el valamit?/de állandóan/
1 hete szenvedek vele és még mindig nem tudtam írni a pickit-el.Felraktam az mplab8.43 as verzióját is, de még mindig nem tudtam beállítani úgy h működjön is.

Egy hibát megoldok jön egy másik!
Valahonnan kellene egy magyar leírás mplab-hoz
(#) watt válasza gulasoft hozzászólására (») Dec 18, 2009 /
 
Erre én azt mondom röviden, hogy aki csak programozási felületnek véli, és ilyen várakozásokkal kezd neki, az bizony csalódni fog! A legtöbb esetben fel is adják az ilyenek, mert egy LED-et sem képesek illeszteni, mert az ohm törvényét se ismerik!
(#) watt válasza gulasoft hozzászólására (») Dec 18, 2009 /
 
Idézet:
„Persze hogy kínlódás elindítani, mert a microchip az adatlapban nem tesz közzé egy tisztességes bekötési példát, szűrőkondikkal, minden bekötött táp és vdd lábakkal”

Na ugye, hogy még is elektronikai alkatrész? Mert ha megnézel egy CMOS IC adatlapot, ott se részletezik az áramköri környezetet. Azt neked kell tudni, ha ilyennel akarsz építkezni! A PIC egy tokba gyúrt CMOS kapuk tömkelege. Igen, lehet programot írni, hogy melyik kapu mikor hogyan...
(#) gulasoft válasza watt hozzászólására (») Dec 18, 2009 /
 
Szerencsére pár alapismerettel rendelkezem, de szerintem akkor is rakhatnának bele egy mintakapcsolást. Nézd meg, a legegyszerűbb feszstabhoz is adnak mintakapcsolást. Mindegy, végül is csak érdeklődés szinten kérdeztem, mert tényleg a mikrochipes mintakártyákon ott van.
(#) gulasoft hozzászólása Dec 18, 2009 /
 
Valaki azt mondta, hogy a pickit3 rosszabb mint a pickit2. Mi a tapasztalatotok vele? Most lehetőségem nyílt olcsóbban hozzájutni akármelyikhez a 3-ast vagy a 2-est éri meg jobban megvenni?
(#) potyo válasza gulasoft hozzászólására (») Dec 18, 2009 /
 
A PIC-hez a demókártya a mintakapcsolás. Ha mindent bele akarnál rakni az adatlapba, akkor nem néhányszáz oldal lenne, hanem sokezer.
(#) watt válasza gulasoft hozzászólására (») Dec 18, 2009 /
 
Idézet:
„Szerencsére pár alapismerettel rendelkezem”

Igen, olvastam, hogy van elektronikai előéleted.
De elsősorban általánosságban beszéltünk a dologról, nem rád gondoltam konkrétan.

Idézet:
„Nézd meg, a legegyszerűbb feszstabhoz is adnak mintakapcsolást.”

A feszstab egy egyszerű áramkör, semmi extra.
A PIC ellenben egy halom ki és bemenettel rendelkezik, mindegyik ezernyi lehetőséggel. Ezekhez nem lehet felsorolni példákat, rajzokat. Itt a logikus az egy doksi szerkesztésekor, hogy vagy semmit vagy mindent. Mindent nem lehet ugyebár. Igyekeznek példákat felhozni, de azokat külön doksikban mutatják be, mivel nem férhet el és nem is illik a PIC doksijába.
Szóval szerintem maradjunk abban, hogy a triviális dolgokat, ami egy elektronikus CMOS alkatrész áramkörbe való illesztése, nem szükséges felemlíteni egy szakember számára! Márpedig a doksikat nem az érdeklődéstől lázban égő tanulatlanoknak készítik elsősorban. Megadják a vonalakhoz tartozó elektronikus specifikációkat, ez bővel elegendő aki érti. Aki nem érti, az előbb tanulja meg!
(#) tibiiii00 hozzászólása Dec 18, 2009 /
 
Helló mindenki!
Egy gyors kérdésem lenne,
egy egyszerű PIC16F57-kontrollert
ICD2-vel fel lehet programozni?
Ha igen akkor a PGD és PGC lábak hova mennek?
A válaszokat köszi!

üdv.:tibiiii00
Következő: »»   624 / 1319
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