Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1024 / 1320
(#) Hp41C válasza Poostmaster hozzászólására (») Szept 14, 2011 /
 
Szia!

Az Excel feladata: A gombok oszlop és sorszámát egy állományba írja.
A stimulus feladata: Az Excel által írt állomány alapján a port lábak között összeköttetés szimulálása.

Indítsd el az Excel -t az xls állománnyal, engedélyezd a futtatást. Indítsd el az MpLab -ot a feltöltött állományban levő projettel (mcp). A projectben az MpLab SIM be van állítva, továbbá a Wath ablak futás alatti frissítése is engedélyezett. Debuggerrel indítsd el a program futását. A Watch ablakban a KEY változó étréke mutatni fogja, melyik gombot nyomtad meg a képen. Persze a gombok elheyezése nem biztosan egyezik meg az általad megvalósított panelével, de a működés lényege látszik.

A programodban a PORTB -t töröld ki a SCAN rutin hívása előtt. A tömörített állományban levő forrásban a nem található rutinok hívását kikommenteztem, az include állomány könyvtárát töröltem - nálam nem ott található...
(#) trudnai válasza Poostmaster hozzászólására (») Szept 14, 2011 /
 
Nem rossz ez az Excel allomany sem, de megnezheted akar a VirtualBreadboard-ot is (ld csatolt kepek)
(#) Poostmaster válasza Hp41C hozzászólására (») Szept 14, 2011 /
 
Hát nem tudom...
Kipróbáltam. A key_value.txt-be csak két 15-öst tesz bele, bármit nyomok.
Amikor elindítom a debugot, akkor szépen végiglépdel a programon soronként, és nem csinál semmit. Még az ugrásokat sem hajtja végre.

Szimuláció nem megy.
Szimuláció ide, vagy oda, van továbbra is a probléma.
4 teljesen azonos programrészlet, amidől kettő tök máshogy működik, mint a másik kettő.
Nem lehet, hogy az 5-ös, és 7-es bitek a PORTB-n valami speciális dolgot csinálnak, amit ki kéne kapcsolnom, csak nem vettem észre?
(#) Poostmaster válasza trudnai hozzászólására (») Szept 14, 2011 /
 
Ez a VBB nagyon okos dolog lenne, de hogy lehet saját csipet beletenni?
(#) trudnai válasza Poostmaster hozzászólására (») Szept 14, 2011 /
 
Ugy erted olyan PIC-et ami nincs benne eleve a konyvtaraban?
(#) Hp41C válasza Poostmaster hozzászólására (») Szept 14, 2011 /
 
Szia!
XLS: Nyomd meg egérrel az egyik gombot, és amíg lenyomva tartod, ALT+F4 segítségével zárd be az excel ablakát. Így nézve a key_value.txt már a gomb sor és oszlop adatát tartalmazza...

Programod:
- A GOMB változót minden SCAN lefutás elején törölni kell.
- Miért mehet egy SCAN maximum ötször a SORTESZT rutinra?
(#) Poostmaster válasza trudnai hozzászólására (») Szept 14, 2011 /
 
Pontosan.
(#) trudnai válasza Poostmaster hozzászólására (») Szept 14, 2011 /
 
Programozni kell ehhez... Hacsak mar valaki nem csinalta meg es megtalalod a neten.

Amugy en ugy szoktam az ilyeneket csinalni, hogy egy hasonlo PIC-en fejlesztem ki az algoritmusokat es utana mikor minden mukodik ahogy szeretnem atultetem a vegleges chip-re es csak akkor keazdem el tesztelgetni / debuggolgatni az aramkoron. Utana is meg lehetnek problemak de sokkal kevesebb, mint ha amugy csinalnam.

Megjegyzem a Proteus nevu cucc sokkal kifinomultabb, mint ez, es abban rengeteg alkatresz mar eleve benne van, csakhat az fizetos es nem berbol es fizetesbol eloknek van kitalalva az ara...
(#) Poostmaster válasza Hp41C hozzászólására (») Szept 14, 2011 /
 
Valóban, az utolsó oszlop után nem kell vizsgálat, csak RETURN.
Módosítottam a SCAN rutint.

Így most annyi változott, hogy a négyes oszlop is működik, csak a 2. nem csinál semmit.
(#) trudnai válasza Poostmaster hozzászólására (») Szept 15, 2011 /
 
Hol van a kapcsolasi rajza ennek? Nem ertem ugyanis miert torolgeted a vezerlo vonalakat es hogyan probalod mukodtetni?

1. Inicializalas
1.1 Globalis felhuzot az elejen tiltsd le
1.2 Egyeni felhuzokat is az elejen allitsd be -- vezerlo jeleknel kikapcsolni, minden mas bemenetnel bekapcsolni
1.3 ANSEL + ANSELH beallitasa
1.4 Mivel tristate-ben akarod hasznalni a vezerlo jeleket, ezert a PORTB-t is az elejen allitsd be (osszes vezerlo vonal 1-es, tobbi meg a funkciojanak megfelelo, az inputoknal nem erdekes mi van ott)
1.5 Ezekutan allitsd csak be a TRIS-t -- igazandibol az elejen minden kapu bemenet, tehat nem is kell allitani, de azert jobb felni mint megijedni

2. Pollozas
2.1 Megfelelo vezerlohoz tartozo TRIS bitet BCF-el kinullazod, ezaltal az adott portlab kimenet lesz, es mivel a legelejen beallitottad a PORT kapujat magasra, ezert mikor kimenetre kapcsolsz a PORT regiszterhez mar nem kell nyulnod, a kimenet automatikusan magas lesz.
2.2 Lekerdezes -- BTFSS es tsai
2.3 vezerlo jel TRIS bitjet 1-re allitod, hogy ismet bemenet legyen (aramkor szempontjabol lebegjen, megintcsak, PORT regiszterhez nem kell nyulni)
2.4 Ismetled az osszes labra ezt

3. Billentyuk kezelese -- szabadon valasztott...

Ja, es kommentezz mindent fel, ha valtoztatsz a kodon a kommentet se felejtsd el valtoztatni, es tagoldd a kododat, hogy jobban lehessen latni melyik muvelet hova tartozik -- pl ures sor es sor kozti komment az egyes vezerlo vonalak kivalasztasanal...
(#) Hp41C válasza trudnai hozzászólására (») Szept 15, 2011 /
 
Idézet:
„ezert a PORTB-t is az elejen allitsd be (osszes vezerlo vonal 1-es,”
Inkább 0, ha a felzúzó ellenállásokat akarjuk használni...
(#) Hp41C válasza Poostmaster hozzászólására (») Szept 15, 2011 /
 
Nincs ott valami túlterhelés, zárlat, stb. Egy egyszerű led villogtató programmal ki kellene próbálni a PORTB bitjeit...
A gombok állapotának vizsgálatához kellene egy kis prellmentesítés is.
(#) Poostmaster válasza trudnai hozzászólására (») Szept 15, 2011 /
 
Most kicsit összezavarodtam.
A kezelés elve az, hogy a PORTB magas szinten van. Az egyik oszlopnak megfelelő bitet kimenetre állítom, és alacsonyba váltom. Utána végignézem a sorokat, hogy melyik bemenet váltott alacsonyra. Ha egyik sem, akkor lépek a következő oszlopra. Közben a GOMB változót minden sor vizsgálatánál egyel növelem, hogy a végén megtudjam, hányadik gomb van lenyomva.

Amit az 1. -es pontokban írsz, az csak sorrendi változás.
Kivéve a globális felhúzót, azt a sort kivettem.
Aztán azt írod, hogy a PORTB-t nem kell állítgatni.
Hp41C éppen az ellenkezőjét írta.
A TRIS kapcsolgatásának módja nem hiszem, hogy befolyásolja a működést. A teljes port írásával egyszerre állítom vissza bemenetre az előző lábat, és kimenetre a következőt. Ez így is két utasítás, meg akkor is, ha
BSF TRISB,4
BCF TRISB,5
alakban írom.
Azt tudom, hogy ha az egyik lábat kimenetre állítom, a felhúzó ellenállás automatikusan kikapcsolódik. Azt viszont nem tudom, hogy ha visszalököm bemenetre, akkor visszakapcsolódik-e. Ezért állítgatom inkább újra be.

De még mindig nem tudom, hogy a második vonalam miért nem működik. A programozása nem tér el a 3.-tól, ami viszont működik.

Most újra felteszem a módosításokkal.

Prellmentesítés egyelőre nem lényeg, csak a kezelést próbálom megoldani. Majd hosszan nyomom.
(#) Poostmaster válasza Poostmaster hozzászólására (») Szept 15, 2011 /
 
Ezekkel a módosításokkal teljesen elrontottam.
Most gombnyomás nélkül is villognak a ledjeim össze-vissza.
(#) Poostmaster válasza Poostmaster hozzászólására (») Szept 15, 2011 /
 
Örömmel jelenthetem, hogy kész van.
Köszönöm mindkettőtöknek a segítséget, és meg is osztanám a tapasztalataimat.
Az előbbi káoszból a globális felhúzó sorának visszaírása hozott ki. Ez tehát mindenképpen szükségesnek mondható.
A második oszlop pedig valóban egy áramköri szakadás miatt nem működött. Szégyellem, de nem jutott eszembe magamtól megnézni. A ledvillogtató viszont rögtön kimutatta a dolgot. (meg a nagyító)

Köszi mégegyszer.
Nem megyek messzire, mert következik az LCD project újraindítása. Lesz kérdésem az biztos.
(#) n_yálastrubadúr hozzászólása Szept 16, 2011 /
 
Szép napot!
Csináltam egy saját kódolású távirányítót amelyben 6 parancsbit van. Ami egy poti és az A/D segítségével tologatok 0-64-ig Ehhez csináltam egy vevőt is, ahol láthatom decimálisan a kijelzőn az értékemet. A problémám az, hogy ez infrán remekül megy, de tx 4msil- bc-nbk rádiómodul adójára ugyanezt elküldve villódzanak a számok. elfogadhatatlan az átvitel. Amit még kérdezni szeretnék. rendben van a 0-64- ig lesz a modellben a gáz szabályzás de ugyanazon az adón egyszerre hogy kormányozok szintén 0-64-ig vagy akár 0- 255-ig és ugyanakkor egyéb funkciókat is kapcsolok lámpa, index, detonátor

Feltételezem, hogy sorosan csak csomagokat küldhetek, és akinek inge az veszi magára, máskülönben elmodulálnám a jelet, és senki se értené?
Köszi!
(#) watt válasza n_yálastrubadúr hozzászólására (») Szept 16, 2011 /
 
Ez megint nem PIC kérdés...
Rádió átviteltechika: Menchester kódolás. Jelen esetben a jeled középátlaga nem 0, ezért a rádió adó-vevő kiakad egyik irányba.
Soros adatátviteli protokollok: Igen, csomagokban kell a különféle értékeket megfelelő sorrendben, vagy jellel ellátva, ha nincs sorrend, küldeni és dekódolni. CRC fontos, főleg rádiós átvitelnél.
(#) vsanyi99 hozzászólása Szept 16, 2011 3 /
 
Sziasztok kérdésem van -e twidohoz magyar leirás?
(#) Ideiglenes válasza vsanyi99 hozzászólására (») Szept 16, 2011 3 /
 
Igen.
(#) Poostmaster hozzászólása Szept 20, 2011 /
 
Sziasztok.
Van egy érdekes jelenség, amit nem értek.
Készítettem egy egyszerű 4*4-es LED-mártixot.
Egy port vezérli. Amikor egyenként végigléptetem, akkor mindegyik felvillan, de ha egy B'11111111'-at küldök ki a portra, akkor csak a képen pirossal ábrázoltak világítanak.
Nem kellene mindnek?

ledek.jpg
    
(#) Hp41C válasza Poostmaster hozzászólására (») Szept 20, 2011 /
 
Jó lenne egy rajz is, hogy megértsük a kapcsolást...
(#) watt válasza Poostmaster hozzászólására (») Szept 20, 2011 /
 
Ha jól kötötted volna be, akkor egyiknek sem kéne! (Feltéve, hogy csak a lábakra kötötted, és nincs meghajtó tranyó, vagy IC.)
(#) Poostmaster válasza watt hozzászólására (») Szept 20, 2011 /
 
Nem kell ide rajz.
Az oszlopok a LED-ek anódjai, a port egyik feléről kapják a tápot, ha 1-be állítom.
A sorokat a LED-ek katódjaira kapcsolt tranzisztorok látják el 0 V-al, ha a tranzisztorok bázisára a port másik feléről 1-et kapcsolok.
(#) Hp41C válasza Poostmaster hozzászólására (») Szept 20, 2011 /
 
Egy-egy áramkorlátozó ellenállás kellene még... Mindnek világítania kellene, ha jó a kapcsolás. Szakadás, fordítva beültetett, más színű, típusú, fényerejű LED esetleg zárlat lehet az oka. Ellenállás nélkül nagy áramok mehetnek a tranzisztorok kollektor körében 4 * (40 .. 100 mA).
(#) watt válasza Poostmaster hozzászólására (») Szept 20, 2011 /
 
Milyen tranyók, milyen ellenállásokat tettél és hová? Csak kéne az a rajz, bár megint elmegyünk LED mátrix bekötésbe!
A PIC melyik portját használod? Biztos mind kimenet és kijön rajta az 5V? Nem A/D kimenetek? Mi másra valók még a lábak? Nem lenne egyszerűbb a rajz?
(#) Poostmaster válasza Hp41C hozzászólására (») Szept 20, 2011 1 /
 
Nincs rajz, mert fejből csináltam.
Ezért nem is fogok neki rajzolni. Az oszlopok bemenetére 1-1 db 180 Ohmos ellenállás van kapcsolva, a bázisra pedig 4,7k-n keresztül jut. Több alkatrész nincs. A PORT a C, vagy D. Esetleg kevés az áram? Egyébként nagy fényerejű fehér LED-ek. A portok jók.
(#) Hp41C válasza Poostmaster hozzászólására (») Szept 20, 2011 /
 
Próbáld egyesével, de legalább soronként (tranzisztoronként), programból vagy kontroller nélkül vezérelve - a durva hibák így kijönnek... Azonos típusúak a led -ek? A led -ek eltérő küszöbfeszültsége okozhatja azt, hogy két párhuzamosan kötött led közül csak az egyik világít - az alacsonyabb feszültségű elviszi az áramot, és nem engedi a feszültséget tovább emelkedni. Az egyszerre kiadott vezérlésnél is megtörténhet.
(#) watt válasza Poostmaster hozzászólására (») Szept 20, 2011 /
 
Egy biztos, hogy valamit nem jól kötöttél be. És nehogy lerajzold, mert akkor lehet, hogy kiderül mit rontottál el. Végül az is biztos, hogy ennek innentől semmi köze a PIC-hez (Mehet a LED-es topicba, ez itt a PIC haladóknak topic!), ha azt állítod, hogy a portok rendben vannak!
(#) Poostmaster válasza Hp41C hozzászólására (») Szept 20, 2011 1 /
 
Egyesével minden rendben.
Soronként meg elég érdekes.
A vízszintes sorok kigyulladnak, a függőleges meg az elsőnél 1, a másodiknál mind, a harmadiknál 1 a negyediknél ismét 4 világít.
Kicserélem az egyedül világítókat.
(#) Poostmaster hozzászólása Szept 20, 2011 1 /
 
Hogy még a LED-eket is párba kell válogatni...
Egy újabb kérdés.
24 db RGB LED vezérléséhez hány port kell minimum?
Az RGB-k egyébként bármilyen színt ki tudnak adni? Feltételezem, hogy ha igen, akkor a lábakra adott feszültségektől függ a színe. Ezt be lehet állítani egy PIC-ben előre?
Következő: »»   1024 / 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