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   158 / 1210
(#) watt válasza szitko hozzászólására (») Okt 29, 2011 /
 
Szerintem egész jól átlátod a feladatot! (Lehet, hogy már nem is a kezdők topicjában van a helyed! )
Gondolom nekiállsz majd... Ha elkadsz, kérdezz, igyekszem segíteni!
(#) Norberto válasza doup hozzászólására (») Okt 29, 2011 /
 
Egyelőre még nem.

- Nyisd meg a PIC adatlapját.

- Nézegesd/tanulmányozd a B és C portokat.

- Keresd meg az adatlapban az inicializálási mintapéldákat a B és C port esetében.

- Milyen fő különbséget látsz és az mire vonatkozik?
(#) vicsys válasza janikukac hozzászólására (») Okt 29, 2011 /
 
Jani! Részemről okés, csak ha dróttal kötöd be, akkor ennyi erővel használhatnál gyári lyukraszteres panelt is...
Nálam a fejlesztő panel, egy modul rendszerű dolog (ahol a modulok akár rá is vannak építve az alaplapra) és a csatlakozóik egyfajta szabvány kiosztás szerint kompatibilisen csatlakoztathatok a pichez és/vagy egymáshoz. Vagy csak én bonyolítom túl...?
(#) watt válasza huba hozzászólására (») Okt 29, 2011 /
 
Szia! Én úgy látom, csak a PIC felépítését kell megértened, amit az adatlapokból megteheszt, a többi nem gond. Persze, a PIC-et Asseblerben könnyebb megismerni, de ha van már tapasztalatod mikrovezérlő témában, akkor lehet, hogy egyből C-vel kezdhetsz.
(#) janikukac válasza vicsys hozzászólására (») Okt 29, 2011 /
 
Igazad van, de ez már nálam így marad. Úgy is fog még több fejlesztő is épülni az idők során. Először a 12F683-at fogom megtanulni lekezelni, aztán jön 16F628 ,majd ha tényleg tudok PIC-ezni, akkor a 18F széria is..
(#) potyo válasza huba hozzászólására (») Okt 29, 2011 /
 
Ha az AVR-hez értesz, akkor szerintem nem lesz probléma. Vannak dolgok, amiben más a PIC, de alapvetően mindkettő kontroller, mindkettőhöz az adatlap biztosítja a leírást, csak a PIC jobb :yes: . Szerintem megnézel néhány példaprogramot, hogy hogyan áll össze egy PIC-es projekt, mit hogyan állítasz be, gondolok itt a konfigurációs bitekre, megszakítást hogyan kezeled le, stb., és nem lenne szabad, hogy probléma legyen. Nekem legalábbis ez volt a tapasztalatom, amikor a PIC után a 8051, MSP430 vagy AVR-el volt dolgom - bár azért az MSP430 adatlapja elég vacaknak tűnik, a 8051 és az AVR adatlapok sokkal jobbak tőlük, de számomra a PIC adatlapok tűnnek eddig a legjobbnak (azokból is inkább a régebbiek, mert mintha az újabbak nem lennének olyan jók, pedig néhány MB nem hinném, hogy annyira kritikus lenne manapság...)
(#) doup válasza Norberto hozzászólására (») Okt 29, 2011 /
 
Rendben megnézem és megpróbálok rájönni.
(#) szitko válasza watt hozzászólására (») Okt 29, 2011 /
 
Köszönöm szépen az elismerést, bár csak futtában dobtam össze a folyamatábrát, így hát hiányos egy kicsit.
Így van ez ha valaki hallgat a Haladókra! A folyamatábra és a folyamatos kommentezés segít megérteni a programozás menetét, és a hibák kiküszöbölését. Ezt mind tőletek tanultam.

Átírtam a progit. Szimulátorban teszteltem (Proteus), 300Hz-ig mentem el és nem hagyott ki egyetlen lépést sem. Most berakom a PIC-be kipróbálom ott is.
(#) szitko válasza watt hozzászólására (») Okt 29, 2011 /
 
Kipróbáltam a félkész programot próbapanelen. (csatolva)
Nagyon-nagyon köszönöm a tanácsot. Még 8MHz-is pontos, akárhogy pörgetem.
Viszont valamit elronthattam a kezdésnél, mert ahogy a képen is látszik, az X Y helyett most valami Kínai jelet rak ki, meg ha visszafele tekerem nem áll meg nullánál.De ezeket majd kijavítom.

counter.jpg
    
(#) watt válasza szitko hozzászólására (») Okt 29, 2011 /
 
Lehet, hogy szinkronizálni kell a kijelzést. Előfordulhat, hogy kijelzés közben változik meg a számláló értéke, ami zöltséghez vezet. Próbáld meg, hogy készítesz egy Temp-et a számláló kijelzéséhez, amit csak akkor töltesz fel, ha kész a kijelzés.
A jelzővel engedélyezed a Temp feltöltését és megszakításkor csak akkor töltöd fel, ha ez a jelző él. A kijelzés megkezdésénél törlöd a jelzőt, a végén engedélyezed.
(#) szitko válasza watt hozzászólására (») Okt 29, 2011 /
 
Nem ott van a probléma, mert a megszakítást addig nem indítom el amíg az "alap" kijelzés nem történik meg. Az "alap" az X Y a felső sorban és alatta a nullák. Ezekután a kijelző felső sorával már nem is foglalkozom, csak az alsó (0000.00) sort frissítem. Ezért nem értem, hogy mi lett vele, mert ehez a részhez nem nyúltam.
(#) janikukac hozzászólása Okt 29, 2011 /
 
Jelentem, kész lett a nyák fele, már ki van marva, szép. Holnap birom ónozni, már leragad a szemem.
(#) watt válasza szitko hozzászólására (») Okt 30, 2011 /
 
Vedd vissza az LCD vonal sebességeket. Néha zagyvaságot olvas ami hibás kijelzéshez vezet. Akár még a módokat, vagy a GRAM-ot is össze lehet így kutyulni.
(#) szitko válasza watt hozzászólására (») Okt 30, 2011 /
 
Ennél egyszerübb volt a megoldás. (figyelmetlenség)
Mivel előröl kezdtem az egész programot, a már meglévő és jól kidolgozott programrészeket, csak bemásoltam az új programba, de pár dolgot újra beírtam.Így tettem ezzel a programrészel is:
  1. LCD_sor1W
  2. addlw   0x80   ; Az 1. sor W oszlopába helyezi a kurzort
  3. call    LCD_Cmd
  4. return

de itt autómatikusan "return"-t írtam a "retlw 0x00" helyett, ezáltal az akuban benmaradt értéket olvasta ki a táblából, ami jelen esetben 1 volt, de a táblázatban csak a 0-ik értéken van adtat.
  1. kiir
  2. addwf    PCL,f
  3. retlw    'X'
  4. retlw    0x00

Mire rájöttem, símán visszaállítottam az órát.
(#) doup hozzászólása Okt 30, 2011 /
 
Sziasztok, szeretnék egy text scrollt csinálni lcd-n balról jobbra. Mikroc Pro-ban tud valaki valamilyen szép megoldást? Tudom van az a függvény hogy Lcd_Cmd(_LCD_SHIFT_RIGHT); de ez mind a két sort shifteli nekem pedig csak a felső sor kellene. Mégpedig úgy hogy a szöveg utolsó betűje kerüljön az 1,1 pozícióba és utána pedig mindig eltolni eggyel.
Próbáltam úgy hogy csináltam egy char text[] = {'H','ő','m','é','r','s','é','k','l','e','t'} és ezt tologattam de ehez mindig törölni kell a kijelzőt amitől csúnya vibrálás látszik.
(#) dinokal válasza janikukac hozzászólására (») Okt 30, 2011 /
 
Szia! Ha a .lay mellé feltennél egy sima képet is, akkor talán többen megnéznék. Csak a te kedvedért nem fogja valaki a programot feltenni. Nekem pl annyi kacat van a gépemen, hogy eszem ágában sincs!
(#) watt válasza szitko hozzászólására (») Okt 30, 2011 /
 
Aha, akkor ez most azt jelenti, hogy működik jól?
(#) janikukac válasza dinokal hozzászólására (») Okt 30, 2011 /
 
Már kijavítottuk. Pont most lett kész a nyák, mert most ónoztam, és sikerült ónozni is. Ma még méretre is lesz vágva, aztán meg majd valamikor fúrva.. Képek szerintem este lesznek ! Üdv !
(#) szitko válasza watt hozzászólására (») Okt 30, 2011 /
 
Igen működik, hála az ötletednek, hogy megszakításból figyeljem a beérkező jeleket. Bár eddig csak az egyik tengely számlálását, és kiírását csinálja a program, de a mért adatokból számolva nem lesz gond mind a két tengely egyidejü számlálásával, amit épp most programozok.
(#) watt válasza szitko hozzászólására (») Okt 30, 2011 / 1
 
Ennek örülök! Jól haladsz vele. Igen, simán ellát "akárhány" tengelyt! Nézd meg, mennyi idő alatt kezel le egy impulzust, természetesen a kijelzés itt nem számít, csak a megszakítás beérkezése, lekezelése, kilépése alatt eltelt idő. Ez meghatározza a maximális imulzus számot. Használd az MPLAB szimulátorát és a Stopwatch-t. Ez pontosan megmondja az időket, ha beállítod az órajelet a Debugger Settings... alatt.
(#) dinokal válasza janikukac hozzászólására (») Okt 30, 2011 /
 
A következőkre írtam! Ha több segítséget adsz ahhoz amihez segítséget kérsz, többen fognak vele foglalkozni. Pl. ha van egy program részleted és kíváncsi vagy arra hogy jó-e, akkor ne a hozzászólásba tedd be, mert a tabulátorok, egyebek gondot okozhatnak. Ellenben ha fájlmellékként teszed be, simán letölthető, nem kell másolgatni, ami fontos! megőrzi az eredeti formátumát.
Hidd el ezeken nagyon sok múlik! Elég egy rossz helyen lévő vagy hiányzó zárójel, a sor elején a tab vagy space hiánya, még sorolni lehetne. Egyébként a letölthető fájlmelléklet sokkal több információt ad, mintha a böngészőben kéne scrollozni! Elnézést az off-ért!
(#) szitko válasza watt hozzászólására (») Okt 30, 2011 /
 
Az MPLAB-ot használom az elsődleges szimulációhoz, a Proteust csak az áramkör, és a program együttes működése, és egyes forráskódban elkövetett hibák (fölösleges lépések) miatt használom. (Meg persze jobb ha nem a PIC megy tönkre) Ha kész lesz a program lehet, hogy felteszem ide, hátha másnak is kell valami hasonló.
Mégegyszer köszi szépen!
(#) janikukac válasza dinokal hozzászólására (») Okt 30, 2011 /
 
[OFF] Köszönöm , igazad van ! Akkor ezen változtatok ! A képekkel meg remélem minél előbb tudok dicsekedni majd !
(#) Poostmaster válasza janikukac hozzászólására (») Okt 30, 2011 /
 
Csatlakozom dinokal-hoz, és még annyit tennék hozzá, hogy a sprintlayout 5 tud exportálni jpg-be, és nem kell fotóznod a kész panelt. Gondolom, erre gondolt, amikor azt írta, hogy a lay mellé tehetnél képet.
(#) pajti2 hozzászólása Okt 30, 2011 /
 
Van egy rs485-öm, aminek sajnos 12mbps a sebessége. Ezt kellene "levennem". Pic-ek közül a 18F sorozatból találtam rs485-ösöket, de egyik sem 12mbps sebességgel. Vannak ilyesmire célirányos eszközök?
(#) janikukac válasza Poostmaster hozzászólására (») Okt 30, 2011 /
 
Aha, értem. A fotot meg úgy értettem, hogy lefotózom, a kimaratott , ónozott panelt, ami a kezem műve..
(#) watt válasza pajti2 hozzászólására (») Okt 30, 2011 /
 
Idézet:
„Van egy rs485-öm”

Mid van?
Idézet:
„aminek sajnos 12mbps a sebessége.”

Ez egy szeköz, amiből ilyen sebességgel jön ki az adat? Biztos, hogy RS485?
Idézet:
„Ezt kellene "levennem".”

Mit akarsz? Ha lassítani, akkor ahhoz akkor a puffer kell, mint amekkorát a be és a kimeneti sebességből adódó adatfeltorlódás ad az átviteli idő alatt. A sebességből következően, itt hatalmas adatmennyiségek vannak.
Erre a PIC nem alkalmas.
Folyamatos átvitel esetén pedig nem lehet csökkenteni az átviteli sebességet.
(#) Hp41C válasza pajti2 hozzászólására (») Okt 30, 2011 /
 
Minden pic kontroller járatható elegendően kis frekvenciás órajellel, amiven a 12mbps (12 mili bit pro sec) teljesíthető... A 12Mbps már sok a pic kontrollereknek...
(#) watt válasza Hp41C hozzászólására (») Okt 30, 2011 /
 
Milyen igazad van!
(#) Poostmaster hozzászólása Okt 30, 2011 /
 
Sziasztok.
Van egy óraprogramom, ami mátrixban elhelyezett ledeken jelzi az órákat. Mivel 12 órát jelzek ki, 2 portot használok a kapcsolásra, az egyik az órákat kapcsolja, a másik pedig a két sorban elhelyezett ledek sorait kapcsolja. A program szépen működik. 12-nél kezdem, ami a második sorban van (1. bit kapcsolja) Aztán átváltom az első sorra, és onnan újra kezdi 1-8 ig. A cifrázás az a dologban, hogy a másodperceket az aktuális óra ki-bekapcsolásával jelzem. Ez a program fot az előtérben, és az órjel pedig megszakításból. A főproram figyeli, hogy történt-e változás a másodpercben...órában...stb. Ha igen, akkor lépteti a megfelelő bitet, ha nem akkor csak kijelzi az aktuális állapotot multiplex üzemben. Az oszcillátor úgy van beállítva, hogy 4 ms-onként generál megszakítást. Az a gondom, hogy amikor átvált az 1 sorra, akkor a multiplex miatt egy pillanatra felvillan az 1. órát jelző led, és ez elég csúnyán néz ki. Gondolom azért, mert az 1 másodpercen belüli változást nem kezelem le. Hogyan lehetne ezt kiküszöbölni? Mellékelem a program részleteit. Az egészet elég lenne átböngészni, ezért csak a szerepetjátszó részeket teszem ide.
Következő: »»   158 / 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