Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   869 / 1319
(#) demcar válasza vicsys hozzászólására (») Dec 28, 2010 /
 
Nagyon szépen köszönöm, a segitséget. Ezáltal sikerült feléleszteni a te általad tervezett hőmérőt
(#) menyus válasza potyo hozzászólására (») Dec 28, 2010 /
 
Ezen agyalok éppen, hogyan szedjem szét az egész programot úgy hogy jó legyen, köszi az ötletet. Táblázatot nem használok.
(#) menyus válasza watt hozzászólására (») Dec 28, 2010 /
 
Hááát, ez az org is egy szürke köd egyelőre. Azt sejtem hogy a memóriát lehet vele címezni mi honnét induljon. Illetve ezzel lehet megadni a reset és az INT vektorokat is a program elején.

Az általad említett utasításokat még nem használtam, nem is ismerem...de utána olvasok ezeknek is.
(#) misi93 válasza watt hozzászólására (») Dec 28, 2010 /
 
Megmértem kiforraszttatlanul a tranzisztorokat és jók (kétszer is megmértem) Az ellenálláson nincs feszültség.
Q3: B-E 0,72v; B-C 0,69; C-E 0,02 szinte semmi ;Q2: B-E 0,06; B-C 7,43; C-E 8.02 v van. nem találtam rövidzárat sehol. De még átnézem.
(#) menyus válasza watt hozzászólására (») Dec 28, 2010 /
 
(#343097 potyo)

találtam itt valamit erről, tehát ezek makrók.És pont arról szól potyo hozzászólása amire az előbb utaltál, hogy nem állhat pl. BTFSS után nem makro mert akkor csak annak az első sorát ugorná át.
(#) watt válasza menyus hozzászólására (») Dec 28, 2010 /
 
Az org egyszerű, ahogy írod:
  1. org 0x0800

Az 1-es lap elejére irányítja az utna következő kódokat.
A PAGESEL használata a következő(MPLAB kezelési könyve tartalmazza a bővebb infókat):
  1. PAGESEL CÍMKE_AMIRE_UGORNI_AKARUNK
  2. BTFSS   STATUS,Z        ; Ha van elágazás
  3. CALL    CÍMKE_AMIRE_UGORNI_AKARUNK
  4. PAGESEL CÍMKE_2_AMIRE_UGORNI_AKARUNK
  5. CALL    CÍMKE_2_AMIRE_UGORNI_AKARUNK


Ugyanez LCALL-al:
  1. PAGESEL CÍMKE_AMIRE_UGORNI_AKARUNK
  2. BTFSS   STATUS,Z        ; Ha van elágazás
  3. CALL    CÍMKE_AMIRE_UGORNI_AKARUNK
  4. LCALL   CÍMKE_2_AMIRE_UGORNI_AKARUNK


Az LGOTO ugyanez...

..Igen, ezek makrók, de a 18F-eknél már nem!
(#) menyus válasza watt hozzászólására (») Dec 28, 2010 /
 
Ahha, dereng már, köszönöm.

2. org 0x1000 pedig a PAGE kettő elejét címezi meg.
3. org 0x1800 a 3 as PAGE elejét...

A 18F eket egyelőre kerülöm. Amikkel én játszom azokhoz ágyúval verébre...
(#) watt válasza misi93 hozzászólására (») Dec 28, 2010 /
 
A Q3 teljesen nyitott. A Q2-vel lesz baj(az BC182?).
Még annyit, hogy legközelebb minden feszültséget a testhez képest mérj, az többet mond.
(#) watt válasza menyus hozzászólására (») Dec 28, 2010 /
 
Azok között is van kicsi és olcsó. Valamint ezek a borzalmak nincsenek, helyette sok könnyű utasítás. Ha egy lapnál több kell, én már rég nem veszek 16F-et!
(#) menyus válasza watt hozzászólására (») Dec 28, 2010 /
 
Akkor én is körüljárom őket... Nekem ez az első kódom ami nem fér el egy lapon. Ezzel most már megszenvedek ha már belefutottam, aztán meglesek közelebbről egy 18F et is.

Köszi
(#) watt válasza menyus hozzászólására (») Dec 28, 2010 /
 
Még annyit, hogy amikor átlépünk egy lapot, indokolatlanul megnő a kódunk, mert tele lesz PAGESEL-el, ami minden alkalommal két sort eredményez, az LCALL, LGOTO pedig 3-at.
(#) misi93 válasza watt hozzászólására (») Dec 28, 2010 /
 
Igen bc182. Bocs nem tudtam, hogy földhöz kell mérni. De ha az többet segít akkor majd lemérem.
(#) menyus válasza watt hozzászólására (») Dec 28, 2010 /
 
Ja, igaz. Na ez sem jutott eszembe, pedig logikus. Egyre jobban tetszik az a 18F széria... :yes:
(#) watt válasza misi93 hozzászólására (») Dec 28, 2010 /
 
Semmi gond. Az látszik, hogy a Q2-vel valami nem stimmel. A Bázison nincs nyitófesz, még is nyitva van(vagy zárlat van a CE között)! Megnézted mi lehet a baj? Ha nem találsz hibát, cseréld ki a tranyót. Ha kivetted, kapcsold be a beforrasztás előtt, nem szabad világítania a LED.-nek! Ha jó a BC182, akkor a beforrasztás után sem.
(#) misi93 válasza misi93 hozzászólására (») Dec 28, 2010 /
 
Itt a mért értékekcsk Q2-őt mérem C:8,04 B:0,07 és az E: 0 v de ez földön van alapból.
(#) misi93 válasza watt hozzászólására (») Dec 28, 2010 /
 
A CE között szakadást mérek lehet ez a baj. De ezt már csak holnap tudjuk meg mert elég hideg van kint és nincs kedvem beöltözni.
(#) lalca válasza watt hozzászólására (») Dec 28, 2010 /
 
Előre bocsájtva,hogy amatőr vagyok ,elgondolkodtam a dolgon,és úgy oldanám meg,hogy ha a főprogi elfér 1 lapon,akkor maga a szubrutin lapozná be maga alá a memóriát.Azaz call sub,a subban pclath beállítása és goto.Így csak 1x kell beállítani,utána már csak hívogatni.Sok hívásnál memória takarékos is.
(#) watt válasza misi93 hozzászólására (») Dec 28, 2010 /
 
A C-n a 8,04 nem stimmel, ott Vpp-t kéne mérj(12V körülit). Mennyi a Q3 E-n a fesz?
A CE között szakadást kell mérj normál eseten.
(#) watt válasza lalca hozzászólására (») Dec 28, 2010 /
 
Egy szubrutin egyféle, egy helyre mutathat. Mi meg sok helyre ugorhatunk... Szubrutinból nem illik kiugrani...
(#) misi93 válasza watt hozzászólására (») Dec 28, 2010 /
 
Engem aggasztott a tranzisztor így még is kimentem és kicseréltem, és láss csodát működik, nem világít a sárga led és a C-on is 12,07v-t mérek.
(#) Hp41C válasza menyus hozzászólására (») Dec 28, 2010 /
 
Szia!

Azért tele lehet írni egy vacak 16F-et is 8k programmal....

Amit Watt írt még nem lesz elég:
- Ha a programod megszakítást is használ, akkor a PCLATH regiszert is menteni kell, majd a 0. Page -re állítani (clrf PCLATH) a megszakítási rutin kezdetén - még az első ugrás / szubrutin hívás előtt. A megszakítási rutin vége felé (az utolsó ugrás / szubrutin hívás után) vissza kell állítani. Természetesen a STATUS és a WREG visszaállítása előtt.

Több helyen olvasható olyan eljárás, ami a 0. lapra próbálja meg menteni a WREG regisztert, de mivel a mentések előtt ugrás tartalmaznak, nem fognak működni, ha a kód több Page -en is tartalmaz kódot.

Kétféle kontroller van a 16F -ek között:
- Az adat memória bankoknak van egy közös területe (0x070-0x07F, 0x0F0- 0x0FF, 0x170-0x17F, 0x1F0-0x1FF). Ez a közös terület azt jelenti, hogy a Bank kiválasztástól függetlenül ugyan az az adat érhető el ezen a 16 helyen. Ide kell menteni a megszakítási rutinból a regisztereket (legalább a WREG -et).
- Az adat bankok függetlenek. Ekkor minden bankban le kell foglalni a mentési regiszterek (legalább a WREG) helyét. Az épen kiválasztott Bank -beli helyre fogja menteni az értékeket. A visszaállításnál a STATUS visszaállítása a bank kiválasztást is a megszakítás előttire állítja be, és jó helyről történik majd a WREG visszállítása.

A WREG mentése után ha a STATUS regiszter értékét a W-be áttöltöttük, módosíthatjuk a Bank kiválasztást (pl.: clrf STATUS ; a Bank0 aktivizálása).
(#) lalca válasza watt hozzászólására (») Dec 28, 2010 /
 
Ezt most nem értem. Persze,hogy egy programban több sub lehet,vagy mire gondolsz?Én arra gondoltam,hogy 1 szubrutint többször híva már takarékos,illetve a főprogramot át lehet írni,anélkül,hogy figyelni kellene a lapozásokra.
(#) menyus válasza Hp41C hozzászólására (») Dec 28, 2010 /
 
Szia, igen használok megszakítást. Nem gondoltam volna hogy ennyire bonyolódik a dolog...erről pl. amit írtál még nem is olvastam sehol. Köszi az infót, olvasok rendületlenül és közben egyre jobban érlelődik bennem hogy 18 F re váltok..ennyi melóval simán átírnám a kódot arra is. Egyszer azzal a típus családdal is össze kell barátkoznom, hátha még a végén jóban is leszünk...
(#) kissi válasza watt hozzászólására (») Dec 28, 2010 /
 
Szerintem nem annyira vészes ez a lapváltás ( programmemóriát tekintve ), inkább az odafigyelés okoz(hat) gondot! Nem kell mindig egyik lapról a másikra ugrálni: pl. a szubrutinokat a második lapra átteszed, előtte PAGESEL, visszaugrás előtt PAGESEL és kész !

Főprogramnak a 2k-s terület azért nem olyan kevés ( igaz, én asm-ben gondolkoztam teljes egészében !) !


Steve
(#) watt válasza Hp41C hozzászólására (») Dec 28, 2010 /
 
Idézet:
„Azért tele lehet írni egy vacak 16F-et is 8k programmal....”
Persze, tele is írtam, de nem szerettem. Egyébként senki nem mondta, hogy vacak.
(#) watt válasza misi93 hozzászólására (») Dec 28, 2010 /
 
Ez jó hír. Akkor most végig kell menni az élesztésen, ahogy leírtam az oldalamon.
(#) watt válasza lalca hozzászólására (») Dec 28, 2010 /
 
És akkor minden szubrutinnak lenne egy hívó szubrutinja? Nem sokat spórolnál ráadásul egy verem helyet elpazarolnál.
(#) lalca válasza watt hozzászólására (») Dec 28, 2010 /
 
Ezek szerint nem tudom jól leírni.

0. lapon call SUB1
SUB1 bsf PCLATH,3
goto CÍM1
1. lapon CÍM1
.
.
RETURN
0. lapon folytatódik a program.
(#) watt válasza lalca hozzászólására (») Dec 28, 2010 /
 
Aha. De ez miért jobb, mint ez:
  1. BSF  PCLATH,3
  2. CALL CÍM_LAP1

Ha csak 1 lap van, akkor elég a 3-as bitet állítani(kisebb lesz a kód), de ha több is, akkor a 4-est is kell, azaz egyszerűbb a PAGESEL.

Közben leesett, ha ebből van 100, akkor a te verziód valóban spórol!
(#) lalca válasza watt hozzászólására (») Dec 28, 2010 /
 
Mert ha pl. meghívod 6 helyről,az 6+ BSF,amugy 1 BSF + 1 goto.Másrészt,mint írtam,szerintem a főprogram átírását egyszerűbbé teszi.Főleg,ha több lapon is van szubrutin.Nem kell figyelni,melyik lapon vannak a subok.
Következő: »»   869 / 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