Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   584 / 1320
(#) potyo válasza Hujikolp hozzászólására (») Okt 7, 2009 /
 
Tápot célszerű odavezetni, bár ha a pickit2 kimenő feszültségét egyformára állítod a tápáramkör feszültségével, akkor nem muszáj. A többit ahogy írod, úgy kell bekötni. Aux marad üresen.
(#) Hujikolp válasza potyo hozzászólására (») Okt 7, 2009 /
 
Köszi szépen!
(#) trudnai válasza Hujikolp hozzászólására (») Okt 7, 2009 /
 
A PICkit2-nek eszre kell vennie, hogy van kulso taplalas, teljesen mindegy mekkora feszultsegu. Ilyenkor nyavalyogni fog, hogy van kulso taplalas es hogy akkor o kikapcsolja a Vdd-t, el kell fogadni es onnantol a PICkit2 nem erolkodik tovabb (marmint a Vdd-t illetoen, a programozasnak mennie kell ha a Vdd szint megfelelo a programozashoz).
(#) Hujikolp válasza trudnai hozzászólására (») Okt 7, 2009 /
 
Találtam ilyen Vdd kalibrációt, de amit mérek, nem akarja elfogadni. Gond? Vagy ezeket hagyhatom?

pickit.JPG
    
(#) trudnai válasza Hujikolp hozzászólására (») Okt 7, 2009 /
 
Ha magyar a Windows-od lehet vesszovel kell a decimalist elvalasztani...
(#) Hujikolp válasza trudnai hozzászólására (») Okt 7, 2009 /
 
Tényleg az volt, eszembe se jutott volna. Köszi!
(#) CheeseE hozzászólása Okt 8, 2009 /
 
Sziasztok!

Ha valaki nagyon ráérne belenézne, hogy a forrásban van-e hiba?
Egész nap ezzel voltam el, és nemtudtam rájönni mi a hiba...szimulátoron tökéletesen müködik, de a vason kihal ezen a részen:

while (!input(pickup)); //wait line goes high

pedig kap kraftot a bemeneten...

gyujti.c
    
(#) gulasoft válasza CheeseE hozzászólására (») Okt 8, 2009 /
 
Kihal, vagy végtelen ciklusban marad?
(#) watt válasza Hujikolp hozzászólására (») Okt 8, 2009 /
 
Nézz szét az oldalamon, még talán rajz is van...
(#) Kriss hozzászólása Okt 8, 2009 /
 
Sziasztok!

A komparátor megszakítását nem nagyon tudom beállítani. Illetve az a baj hogy nem akkor történik megszakítás amikor a komparátor kimenete szintet vált hanem össze-vissza. Szimulációban pedig az első szintváltásnál belép a megszakításba és ott is marad ugyanis a PIR1,CMIF-et nem lehet törölni. Mellékelem a programot. Tudja valaki hogy mit ronthatok el?

Program.asm
    
(#) szilva válasza Kriss hozzászólására (») Okt 8, 2009 /
 
Az interrupt kiszolgálóban semmiféle context-savinget nem használsz, ami így elég ronda, bár a problémád nem ebből adódik. Azért ragad be a CMIF bit, mert azt nem elég a törléssel megszüntetni, hanem a CMCON regisztert is ki kell olvasni a törlése előtt. A Figure 10-3 elemzéséből is láthatod, hogy a CMIF bebillentése egy kizáró-VAGY kapun keresztül áll elő a komparátor kimenetének a CMCON legutolsó beolvasásakor látott és a mostani állapotából. Amíg ez a két állapot eltér (változás volt az utolsó olvasás óta), addig a CMIF bit mindig magasba áll. Ez ugyanaz a mechanizmus, mint amit a portlábak megváltoztatásakor kiváltandó (IOC) interruptnál alkalmaznak a PIC-ek.
(#) Kriss válasza szilva hozzászólására (») Okt 8, 2009 /
 
Köszi szépen a segítséget, így már működik. A context-saving alatt mit értesz?
(#) trudnai válasza Kriss hozzászólására (») Okt 8, 2009 / 1
 
Idézet:
„Köszi szépen a segítséget, így már működik. A context-saving alatt mit értesz?”


Minden amit az interrupt kezelo tonkre tesz azt vissza kell allitani... Pl a STATUS tartalmat, vagy bank / page szelekciot, WREG-et, indirekt cimzeshez hasznalatos regisztereket stb...
(#) Kriss válasza trudnai hozzászólására (») Okt 8, 2009 /
 
Értem. egyébként a status regiszter mentését miért swapf paranccsal csinálják, miért nem jó a movfw... movwf...? A w visszaállításához is miért nem movfw használnak ehelyett:
SWAPF W_TEMP,F
SWAPF W_TEMP,w
(#) Hp41C válasza Kriss hozzászólására (») Okt 8, 2009 /
 
Szia!

A movf utasítás állítja a Z flag-et (nem a STATUS eredeti tartalmát mentené el), a swapf nem....

Szia
(#) szilva válasza Kriss hozzászólására (») Okt 8, 2009 /
 
Nézd meg az adatlapban, hogy melyik utasítás hogyan állítja a flageket, és rá fogsz jönni, hogy kell oda az a SWAPF.
(#) Kriss válasza szilva hozzászólására (») Okt 8, 2009 /
 
Ja hogy a movf elállítja a Z-t a swapf meg nem.
(#) lidi válasza trudnai hozzászólására (») Okt 8, 2009 /
 
Megfogadtam a tanácsaitokat, szinte minden portlábat be tudtam állítani a legkedvezőbb beállításba (ahol lehet ott analogba kapcsoltam, ahol meg nem, ott pedig kimenetre és 0 -ra, amelyik bemenetnek maradt, ott pedig van földre húzó ellenállás). Egy portlábbal nem tudok még mit kezdeni, ez pedig a 16F887 es RC7/RX lába. Ez egy max232 re van kötve. Itt normál üzemben, adásszünet esetén ugye 5V -van, amit a max küld ha igaz. Na ezzel mit lehet kezdeni ? Mert ha átrakom kimenetnek ezt a lábat, és mondjuk magas szintre kapcsolom, akkor innen folyni fog áram a max felé. Viszont ha meg földre húzom, akkor amig ki nem ürül a max tápjának a puffere, egymással fognak harcolni.
(#) lidi válasza lidi hozzászólására (») Okt 8, 2009 /
 
Na, végül is beraktam egy 470 ohmos ellenállást a max és a RX láb közé, így mikor elmegy a tápfesz, akkor pár pillanatig küzdenek csak, aztán a max feladja. És jónak tűník. Műszerrel nézve 4.88V ról nagyon nagyon lassan esik csak a feszültség, akkor is csak egyesével századonként. Nem tudom még hogy így mennyit fog kibírni, de több óra is lehet már. Azért ez nagyságrendi javulás a kezdeti 2-3 perchez képest.
(#) potyo válasza lidi hozzászólására (») Okt 8, 2009 /
 
Szerintem az RX láb jó úgy, ahogy van, nem kell bántani. Ha a MAX tápja elmegy, akkor azt a pontot úgyis lehúzza a földre, az meg neked már jó. Vagy esetleg ha a max kimenete nem húzná le, akkor tehetsz egy nagyobbacska ellenállást (mondju 100k) az RX láb és a GND közé. Vagy - most jön a csavar - akár az RX láb és a MAX tápja közé.
(#) icserny hozzászólása Okt 8, 2009 /
 
Új fejezettel gyarapodott az "Ismerkedés a PIC18 mikrovezérlőkkel" című PICCOLO projekt.

Az új fejezet: Assembly programozás haladóknak
A fejezet tartalma:
o Szorzás
- 4 bites előjel nélküli számok szorzása
- 8 bites előjel nélküli számok szorzása
- Hardveres szorzás (mulwf és mullw)
- 16 bites előjel nélküli számok szorzása
o Előjeles szorzás
- 8 bites előjeles számok szorzása
o 16 bites előjeles számok szorzása
o Osztás
- Előjel nélküli számok osztása
- Előjeles számok osztása

Be kell vallani, hogy ez a Bob Reese: "From Assembly To C with the PIC18FXX2" c. könyv 7. fejezetének csak az első fele, de a fejezet másik felével egyelőre nincs időm/ingerenciám foglalkozni. Majd...
(#) trudnai válasza lidi hozzászólására (») Okt 8, 2009 /
 
En nem tudom a Max-nak milyen a kimenete, ha OC-s es felhuzo miatt van ott 5V, akkor te is felhuzhatod valamekkora ellenallassal, olyannal amit a max kimenete meg megfeleloen le tud huzni ha akarja. Ha aktiv az 5V akkor pedig olyannal kellene lehuzni, amelyiket meg aktivan hajtja meg a max konnyeden. Most (is) lusta vagyok ehhez az adatlapot bogaraszni, de gondolom majd Te kinezed mi a helyzet
(#) trudnai válasza icserny hozzászólására (») Okt 8, 2009 /
 
Minden tiszteletem a kitartasodert es a szepen kivitelezett oldaladert!
(#) mammut hozzászólása Okt 9, 2009 /
 
Sajnos nem sokat konyítok a C-hez, ezér azt szeretném kérdezni, hogy a következő led mátrix forrásrészlet mit takar, vagyis ebből honnan tudom meg a kivezérelt képpontok elhelyezkedését?
  1. const unsigned char CoName[224]={
  2.         0x0e,0x03,0x38,0x06,0x21,0x00,0x01,0x00,
  3.         0x84,0x04,0x44,0x04,0x20,0x00,0x01,0x00,
  4.         0x84,0x00,0x04,0x84,0x71,0x38,0x0d,0x00,
  5.         0xc4,0x01,0x74,0x04,0x21,0x04,0x13,0x00,
  6.         0x84,0x00,0x44,0x04,0x21,0x04,0x11,0x00,
  7.         0x84,0x00,0x44,0x04,0x21,0x45,0x11,0x00,
  8.         0x8e,0x00,0x78,0x8e,0xc3,0x38,0x11,0x00,

Ilyen tömbből van 4db, ezek tartalmaznak egy szöveget, amit a program valami 64bites soros adatban kiküld a kijelző felső 16*64-es részére. A kijelzőpanel egy 32soros 64 oszlopos RG ledes mátrix kijelző.
A segítségeket előre is köszönöm!
(#) trudnai válasza mammut hozzászólására (») Okt 9, 2009 /
 
En nem latom a kapcsolast meg a program tobbi reszet igy nem tudom, de nyilvan az neked is feltunt, hogy ez egy matrix, aminek minden sora 64 bitet tartalmaz, es 7 pontsora van egy szoveg sornak (224/8=28. 4x7=28). De ha minden sor kozott hagysz egy kis tavolsagot, hogy a betuk ne erjenek ossze, akkor 8x4=32... es akkor mar kozelebb vagyunk a megoldashoz valoszinuleg, mert tudjuk, hogy 4 sora van, es valoszinuleg 8 karakter, mert sehogy maskepp nem jonne ki normalisan hogy 1 sorba hany karakter ferne el (ugye a kijelzod 64*32, igy 64/8 = 8 karakter, a karakter 8 szeles, valoszinuleg 1 sor majd mindig kimarad elvalasztonak).

Sajnos most tul faradt vagyok, hogy tovabb gondolkodjam. Azt sem egesen ertem mi az a 16*64-s resz? Hany magas 1 betu amit latsz a kepernyon? Hany szine lehet a karaktereknek? 1 karakteren belul is vannak mas szinek? Mert most latom RG (tehat voros-zold LED-ekrol van szo? Abbol 3 alapveto szin jonne ki, szoval nem mindegy hogy hogyan csinalja... lehet 2 bitet hasznal egy pontra...)
(#) mammut válasza trudnai hozzászólására (») Okt 9, 2009 /
 
Köszönöm szépen a választ!

Pontosítok egy kicsit:
A kijelző kívülről rajta a tömbben tárolt szöveg kijelezve.
A dokumentáció, ami tartalmazza a forráskódot és kapcsolási rajzot, működést is.
(#) trudnai válasza mammut hozzászólására (») Okt 9, 2009 /
 
Aham, akkor megiscsak a hagyomanyos 5x7-es karakterekkel dolgoznak, azaz egy karakter hely 6 pixel szeles a mogotte levo elvalaszto vonal miatt. A kepen 11 karaktert latunk 1 sorban ("Electronics"). Namost az 11*6 = 66, ami nyilvanvaloan nem ferne ki. De ugye a legutolso karakter utan mar nem kell kihagyas, ezert az csak 5 pixelt foglal el, igy mar csak 65 ami mar majdnem kijon. Ha jobban megnezzuk a kepet, akkor feltunhet, hogy az "i" betunel csaltak, azaz ott 4 pixel + 1 kihagyast hasznaltak a szokasos 5+1 helyett, igy jon ki nekik a 64...

Magyaran grafikusan megterveztek a szoveget, nem hasznaltak vegeredmenyben karakter generatort, es igy tudtak a szoveget megjeleniteni szepen.
(#) esanya válasza szilva hozzászólására (») Okt 10, 2009 /
 
Sziasztok!

Mukodik a kondival!!! Kossz!

Viszont a progiban amivel tegnap probalgattam volt egy bug ami beleirt az eepromba, ugyhogy azt hittem hogy meg mindig rossz, es probalgattam ami eszembe jutott...

Most ugy nez ki hogy kinyirtam az egyik pic16f88-at... Folyton azt irja a pickit2: No device detected. Ha jol emlekszem az utolso akcio amit csinaltam az az volt hogy beraktam a 100nf-os kondi melle meg egy 100nf-osat parhuzamosan, hogy legyen 200nf (parhuzamosan ugye osszeadodnak), es azt irtatok hogy 47-230nf-ig kell kondi...

Ugy emlekszem ez utan mar nem reagal a pic...

Van valami amivel ujra lehetne eleszteni vagy ennek mar vege? (vegulis a progi is rossz volt amivel tegnap probaltam, mult vasarnap ota modositottam)

kossz,
udv,
Sanyi
(#) watt válasza esanya hozzászólására (») Okt 10, 2009 /
 
Ettől biztosan nem ment tönkre! Valami más oka van, mondjuk forrasztásnál zárlatot okoztál(ami még most is megvan. Ki kéne mérd), vagy nagyfesz tüskével tetted tönkre(pulóver, műanyag szék, szőnyegpadló, földeletlen csukló).
(#) Stefan válasza esanya hozzászólására (») Okt 10, 2009 /
 
Annal a procinál érdemes arra figyelni, hogyha a timer1 et használod nehogy beállítsd, hogy a PGC lábra(12) kiadja az oscillator jelet, mert utánna nemfogod tudni megint programozni. De egyéb esetek is lehetnek mikor összekad valami.
De erre is van megoldás: Nekem sikerült a pickit2 programjával earse-elni valahogy. Próbálgatni kell, valahogy kilehet törölni. Utánna már az MPLAB is felismeri.

Nagyonsokat szívtam vele mire rájöttem....
Következő: »»   584 / 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