Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   674 / 1320
(#) Attila86 válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Sucuka, nem mondta még valaki hogy jobb 18F-as PIC-el kezdeni a tanulást?
(#) sucuka válasza icserny hozzászólására (») Feb 14, 2010 /
 
Sajnos nem mindenki "születik" mesteri értelmező képességgel, vannak olyanok akiknél a szájbarágós módszer jobban működik: ez vagyok én.
(#) sucuka válasza Attila86 hozzászólására (») Feb 14, 2010 /
 
Na én pont ezért választottam a 16F-est! Szeretem a kihívásokat...

Mellékesen jegyzem meg, hogy az építő jellegű kritikát jobban tolerálom, mint a lecseszős fajtát. Ez általánosságban szól mindenkinek, nem vagyok már kisgyerek...
(#) trudnai válasza MPi-c hozzászólására (») Feb 14, 2010 /
 
Idézet:
„Pontosítok, a legújabbakban van, de itt egy 16F628A-ról volt szó...”


Ezert nem szerencses mikor valaki csak 12F vagy 16F neveket emleget. Azokbol van Base-Line, Mid-Range es Enhanced-Mid-Range csalad, tehat onmagaban az, hogy 16F, meg nem arul el semmit a mogotte levo architekturarol...
(#) Attila86 válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Ne haragudj, egyáltalán nem akartalak lecseszni. Csak tényleg nem tudtam, hogy mondta-e már ezt neked valaki.

Tényleg jobb a 18F, van pár nagyon jó parancsuk amiket a 16F-esek nem tudnak, és sokszor nagyon megkönnyítik a programozást. Kihívás persze a 18F-es PIC-eknél is van bőven, efelől ne legyen kétséged!
(#) sucuka válasza Attila86 hozzászólására (») Feb 14, 2010 /
 
Ne izgulj Attila, nem neked szólt, hanem általánosságban beszéltem.
Persze senkit sem szeretnék megbántani, magam is vagyok /voltam hasonló helyzetben, mikor teljesen természetesnek veszi az ember azt hogy ezt "tudni kell alapból". Vannak akik nem tudják, ezért kell építően segíteni nem úgy, hogy lerombolod az önbizalmát, mert nem úgy csinált valamit, ahogy a "nagykönyv" (esetünkben az adatlap) megírja.


Az előbb mellékelt kódrészlet egy példából van, ami nem feltétlenül a 16F628A-ra íródott, csak megpróbáltam adoptálni.
Jó lenne valami példatár szerű dolog, amiben mintaprogramokban kommentezve van hogy mit miért csinálok stb. Lehet, hogy rossz helyeken keresgélek, de keveset találtam eddig.
(#) Attila86 válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Vannak ilyen mintaprogramok, többek közt azon a weboldalon amit legutóbb privátban írtam neked. De ezeken a mintaprogramokon nagyon hamar túl fogsz lépni hidd el! Ezek csak a LED villogtatásig szolgálnak mankónak. Na meg majd ha A/D-t szeretnél használni, vagy EEPROM-ot írni vagy valamely másik perifériát használod először, akkor jók ezek a mintaprogramok. Viszont ezekre (az egyes perifériák kezelésére) mintaprogram van az adatlapokban is.
(#) trudnai válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Ez az MIT PIClist / TechRef lehet elkerulte a figyelmed...

(amugy meg nosza, kezdd el ossze szedni az algoritmusokat, rendszerezd es kommentezd ki a forrast stb, es tedd ki egy web site-ra, szerintem sikere lenne )
(#) sucuka válasza trudnai hozzászólására (») Feb 14, 2010 /
 
Igen, ezzel eddig még nem találkoztam Köszi!
(#) watt válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Akkor térjünk vissza a tárgyra, beálítottad az A portot digit bemenetre? (Adatlap A/D szekció, AD kikapcsolása))

Még valami, nem túl szép így írni, nem beszélve, hogy olvashatatlanná teszi a kódot.
  1. MOVF    PORTA,0               ;PORTA állapota W-be

Használd a W és az f jeleket(az f azt jelenti, hogy a művelet eredménye visszakerül a regiszterbe, amivel a műveletet végezted)
  1. MOVF    PORTA,W               ;PORTA állapota W-be
(#) sucuka válasza watt hozzászólására (») Feb 14, 2010 /
 
Eddig rendben is volnánk, átírtam. De az adatlapból kiollózott PORTA inicializálási példa:

  1. CLRF    PORTA
  2.                 MOVLW   0x07
  3.                 MOVWF   CMCON
  4.                 BCF             STATUS,RP1
  5.                 BSF             STATUS,RP0
  6.                 MOVLW   0x1F
  7.                 MOVWF   TRISA


alapján TRISA-ban binárisan '00011111'-et kéne látnom, ennek ellenére a watch ablakban ez van: '00111111' és nem változik meg mikor odaér a program a szimulátorban.
Még valami: nem tenném fel az MPLAB-os topikban, ha itt is kaphatok rá választ: hogy tudok a szimulátorban beavatkozni abba, hogy mit adok az RA0 ill. az RA1 lábakra?
(#) trudnai válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Idézet:
„TRISA-ban binárisan '00011111'-et kéne látnom, ennek ellenére a watch ablakban ez van: '00111111'”


Ok, tehat az RA5-tel van a gond... szoval mit mond ra az adatlap?
(most direkt en sem nevezem neven a gyermeket, hogy tanuldd meg az adatlapot olvasni )
(#) sucuka válasza trudnai hozzászólására (») Feb 14, 2010 /
 
Igen, a szürke keretben lévő rész valahogy kívül esett a látómezőmből

Idézet:
„Note 1: RA5 shares function with VPP. When VPP
voltage levels are applied to RA5, the
device will enter Programming mode.


És mivel a konfigban MCLR enabled, ezért nem bemenetként funkcionál

Különben már 4 gombot kezel, átírtam, és folyamatosan ügyködöm rajta, nem győzöm hangsúlyozni, hogy a fejlődésem a ti érdemetek főként!
(#) trudnai válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Kezdesnek nem rossz, olvasd tovabb, van ott meg egy nagyon fontos kitetel azzal a port labbal kapcsolatosan
(#) icserny válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Olvasgasd még az adatlapot, mert máshol más is van még írva RA5-ről! (szabad az Adobe Reader keresőjét is használni!)
(#) sucuka válasza trudnai hozzászólására (») Feb 14, 2010 /
 
Ha jól értelmezem erre gondolsz:
Idézet:
„RA5(1) is a Schmitt Trigger
input only and has no output drivers.”
(#) sucuka válasza icserny hozzászólására (») Feb 14, 2010 /
 
Használom is erőteljesen, ne aggódj
(#) trudnai válasza sucuka hozzászólására (») Feb 14, 2010 /
 
Pontosan Tehat akkor az RA5-hoz tartozo TRIS bit lehet-e 0?
(#) sucuka válasza trudnai hozzászólására (») Feb 14, 2010 /
 
Hát ebben a "felállásban" aligha. Köszi!
(#) icserny válasza sucuka hozzászólására (») Feb 14, 2010 /
 
TABLE 5-1-re gondoltam, amiben arra kellett felfigyelni, hogy RA5 "Input port", míg a többi "Bidirectional I/O port".

Ezt érdemes megjegyezni, mert a többi PIC-nél is így van: az MCLR láb nem lehet kimenet.
(#) Attila86 hozzászólása Feb 14, 2010 /
 
Ha a PICkit2-t használom szimulációra akkor lehet olyat csinálni, hogy a PIC rendesen működjön csak a számítógépen én lássam hogy adott pillanatban épp hol tart a programszámláló?

Készítettem egy új menürendszert és az egyik menüpont kiírása után valami végtelen ciklusba kerül a PIC ("lefagy") mert utána nem csinál semmit és szeretném tudni hogy merre bóklászik ilyenkor...
(#) potyo válasza Attila86 hozzászólására (») Feb 14, 2010 / 1
 
Debugger->Run, akkor fut, majd utána Debugger->Halt elvileg megállítja.
(#) Attila86 válasza potyo hozzászólására (») Feb 14, 2010 /
 
Köszönöm! Tényleg belekerült egy végtelen ciklusba a kis bolond...
(#) trudnai válasza Attila86 hozzászólására (») Feb 14, 2010 /
 
A PICkit2-ben az a jo, hogy tud debuggolni is (hasznalni a PIC-be epitett debug aramkort), vagy akar emulatort is tud hasznalni (nehany PIC-nek nincs beepitett debug aramkore ezert egy emulator aramkorrel lehet a PIC-et emulalni/debuggolni, ami emlemeltileg elektromosan ugyanugy viselkedik, mint az eredeti PIC). Tehat PICkit2 debuggolashoz nem kell hozza szimulacio (szamitogepes/szoftveres emulacio), illetoleg a szimulacionak nem kell a PICkit2. Ez pedig azert lehet jo, mert a tenyleges aramkorben lehet kiprobalni dolgokat (marmint ha PICkit2-vel debuggolsz).

Tegyel egy tores pontot arra a helyre, ahol a program vegtelen ciklusba kerul -- vagy meg az ele -- es igy mikor PICkit2-vel debuggolod, mikor elerkezik arra a pontra, akkor megszakad a program vezerles, es a debug kepernyon lathatod majd a program sort ill memoria es regiszter allapotot kiolvashatod stb...

De ha szoftveres a hiba, akkor akar szimulalhatod is MPSIM-mel...
(#) Attila86 válasza trudnai hozzászólására (») Feb 14, 2010 /
 
A hiba szoftveres volt, de a szimulátorban nem tudom előidézni mert ahhoz hardveres beavatkozások kellenek (gombok megnyomása adott ideig...).

Idézet:
„Tegyel egy tores pontot arra a helyre, ahol a program vegtelen ciklusba kerul -- vagy meg az ele”

Az nem jó, hiszen épp arról volt szó hogy nem tudom hogy hol kerül bele a végtelen ciklusba. Ilyet egyébként amit írsz már csináltam többször, ez is nagyon hasznos dolog. De jelen probléma esetén arra volt szükség, hogy adott pillanatban megtudjam hogy hol tart a PIC.

De már megoldódott a probléma, köszönöm még egyszer a segítséget!
(#) trudnai válasza Attila86 hozzászólására (») Feb 15, 2010 /
 
Idézet:
„A hiba szoftveres volt, de a szimulátorban nem tudom előidézni mert ahhoz hardveres beavatkozások kellenek (gombok megnyomása adott ideig...).”


Stimulus file-okat nezd vegig, nagyon hasznos dolog. Majdnem mindent be lehet taplalni annak a szimulatornak. Masik dolog, hogy szimulalas kozben meg lehet valtoztatni dolgokat, valtozok ertekeit stb, ami utan a programszal bekergetodik a megfelelo helyre.

Masik lehetoseg, hogy a "Set PC to Cursor"-ral bele piszkalsz a program szalba, es megvaltoztatod a program vezerles helyet...

Harmadik lehetoseg, hogy ideiglenesen valtoztatsz a programodon, tehat debug idejere ugy viselkedik, hogy ne kelljen speci gombnyomasokra varakozni, hanem mintha egybol az a feltetel mar teljesulne.

Idézet:
„Az nem jó, hiszen épp arról volt szó hogy nem tudom hogy hol kerül bele a végtelen ciklusba.”


Trukkozni azert lehet. Pl. PICkit2 is es a szimulacioval is lehet a progam futasat felbe szakitani (mikor mar ott idozik egy ideje, akkor megszakitod es kiderul hol van).

Masik lehetoseg, hogy pl egy timert beallitasz megszakitasra, ha az beszakit, akkor ott van a torespont, es a call stackrol kinezed honnan jott...

Harmadik lehetoseg, hogy LED-ekkel, ill. LCD vagy soros kommunikacios modszerrel jelzed hol tart a program szal (ha nincs lehetoseg debuggolni pl.). Ekkor pl van egy LED-ed, ha eljut X pontra begyujtja a LED-et, ha kijott kialtatja... Ha ott nem all be, akkor beteszed a kovetkezo helyre a program reszletet, egeszen addig ameddig el nem talalod hol lehet ez a resz. Ennek lehetnek kulonbozo variacio, a legjobb, ha tobb LED-ed van es latod hol ment be es hol (nem) jott ki... Sokan ilyenek miatt (is) masik, nagyobb labszamu es nagyobb ROM/RAM-mal rendelkezo PIC-kel epitik meg a proba aramkort, es mikor vegeztek a fejlesztessel, csak utana ultetik a kodot at a kisebb labszamura, kevesebb memoriasra.
(#) watt válasza trudnai hozzászólására (») Feb 15, 2010 /
 
Én majdnem mindig soros portos hibakezelést csinálok, és LED-eset(soros protokol hibák esetén mást nem nagyon lehet). A PK2-t csak ritkán használom erre, csak végső esetben, mert nem szeretem az MPLAB bénázását! Mindenesetre elég széles lehetőségek vannak, meg lehet találni a hibát, az biztos.
(#) sucuka válasza trudnai hozzászólására (») Feb 15, 2010 /
 
Én is kérdeztem ilyent itt, amikor azt akartam, hogy a szimulátorba hogyan tudok beavatkozni, de akkor most megkaptam rá a választ.
(#) icserny válasza sucuka hozzászólására (») Feb 15, 2010 /
 
Már többször,több topikban ajánlottuk az MLAB magyar nyelvű leírását. (Ha nem jönne le elsőre, akkor RELOAD page...)
(#) sucuka válasza icserny hozzászólására (») Feb 15, 2010 /
 
Igen, már megvan, lejött, köszi! Még kinyomtatni nem volt időm.
Az Ilyen kézikönyv-szerű dokumentumokat jobban szeretem papíron, mert a sok ablakváltogatástól a gépen néha frászt kapok, pedig ez hozzá tartoziik. (Örüljünk is neki, hogy multitask-os oprendszerek vannak, igaz? Bezzeg régen...)
Amikor már 5 Adobe Reader, az Eagle 3 ablaka, meg még az MPLAB is fut, aztán meg ugye böngésző, mert a fórumot kell közben olvasni .... szóval nem egy erőmű a gépem.
Következő: »»   674 / 1320
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