Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   47 / 1320
(#) watt válasza Topi hozzászólására (») Jún 23, 2007 /
 
Húha, Topi te ilyen részletekbe akarsz belemenni? Már a gondolattól is szédülök, de biztosan nagy haszna lesz, ha elkészülsz vele! Ez már nem is a PIC-ről szól, hanem inkább az elekronikáról mint olyan. Egyébként ezért szoktam azt mondani, hogy a PIC nem programozási felület, hanem inkább hardver! nemo kérdései is ezt támasztják alá! Természetesen ezt nem neked címzem, hiszen ezt már mi lecsekkoltuk egyszer!
Kitartást a cikkhez!
(#) potyo válasza nemo hozzászólására (») Jún 23, 2007 /
 
Idézet:
„Erről eszembe jutott, hogy van-e jelentősége, melyiket használom?”

Itt végülis nincs igazán jelentősége a dolognak, ott van, ha ledeket kapcsolgatunk, akkor jobb, ha a led a táp és a láb között van.
(#) tszaboo hozzászólása Jún 24, 2007 /
 
Helló. Most foglalkozom a gombok illesztésével én is, pontosabban mondva a pergéssel. Azt szeretném mérni, hogy hány gombnyomás után pereg a gomb 255-öt. A gomb a PORTA,3 -ra van kötve, a beállítások jók, a "megvan" üzenet a PORTC 4 bitjének 1-re állítása lenne. De valami miatt ez egyből megtörténik. Szeretném, ha megvizsgálná valaki ezt a kódot, mi lehet a hiba:
...(beállítás)

movlw b'11111111
movwf darab
movlw b'00000000
varakozik:
decfsz Delay1,f ; same delay as above
goto varakozik
decfsz Delay2,f
goto varakozik
vizsgal:
btfss PORTA,3
decfsz darab
goto vizsgal
movlw b'00001111
movwf PORTC
goto vege
vege:
nop
goto vege
end

tehát a hiba az, hogy a négy bit alapból 1-re vált, gombnyomás nélkül.
(#) watt válasza tszaboo hozzászólására (») Jún 24, 2007 /
 
A decfsz akkor ugrik, ha a csökkentett bájt 0-ra vált. Mivel a 'darab' kezdő értéke b'11111111' ezért ez egyből bekövetkezik.
(#) Norberto válasza watt hozzászólására (») Jún 24, 2007 /
 
Az nem az incfsz lenne?

A decfsz az csökkent a regiszter értékből, az incfsz pedig növeli, azaz túlcsordulva nullázódik, közben a Carry-ben 1-es jelenik meg...

tszaboo!

Egyébként elegánsabban úgy szokták a "nagyok" csinálni, hogyha csak egyetlen kimenetet kell ki-be kapcsolgatni, akkor az egész portot nem állítgatják...

Tehát a következő utasítást célszerűbb lenne majd a későbbiekben használni:

bsf PORTC,4 <<< magas szinten lesz a PORTC 4-es kimenete

bcf PORTC,4 <<< alacsony szinten lesz ez a kivezetés>>>>>>
(#) tszaboo válasza Norberto hozzászólására (») Jún 24, 2007 /
 
csökkenteni akarom, ha a b'11111111-at csökkentem 255 ször, akkor lesz 0 és akkor jut ki a "vizsgal" ciklusból. A csökkentésnek meg csak akkor szabadna bekövetkeznie, ha PORTA,3 magas értéket vesz fel, tehát gombnyomás közben. Az elejére biztonság kedvéért tettem be a várakoztató rutint, de az sem segített.
(#) Norberto válasza tszaboo hozzászólására (») Jún 24, 2007 /
 
Van egy sejtésem...

Szerintem itt nem btfss-t kéne használni, hanem btfsc-t PORTA vizsgálatára

Ugyanis jelen esetben az van, hogy

btfss-nél átugorja a program a darab regisztert csökkentő utasítást...

Azaz, akkor számlál, ha nincs lenyomva a gomb
(#) Topi válasza watt hozzászólására (») Jún 24, 2007 /
 
DECFSZ azért DECFSZ, mert Decrementál, tehát csökkent.
Az INCFSZ azért INCFSZ, mert inkrementál, tehát növel.
b'11111111'-at a DECFSZ b'11111110'-ra fogja csökkenteni.
(#) Topi válasza Norberto hozzászólására (») Jún 24, 2007 /
 
Ha felhúzó ellenállás van akkor BTFSS-t. Mert akkor lesz nulla ha le van nyomva és a gomb a bemenetet földre húzza.
Akkor "Skippel" ha Set (vagyis 1). De mivel a lenyomott gombic miatt 0, ezért nem skippel tehát végrehajtja a DECFSZ-t.
(#) Norberto válasza Topi hozzászólására (») Jún 24, 2007 /
 
Nincs felhúzó-ellenállás, ez kiolvasható az elmondottakból :yes:

Idézet:
„A csökkentésnek meg csak akkor szabadna bekövetkeznie, ha PORTA,3 magas értéket vesz fel, tehát gombnyomás közben.”

by tszaboo
(#) watt válasza Topi hozzászólására (») Jún 24, 2007 /
 
Ja, ezt benéztem!
(#) Topi válasza Norberto hozzászólására (») Jún 24, 2007 /
 
Gombokat nem szabad rendesen bekötni, zavarérzékenység miatt. A zavar általában pozitív feszültség lökés. Ha ellenállással nem tápra hanem földre van húzva, a feszültség lökés megemeli a bemenetet és hamis lenyomást érzékel.
Míg ha tápra van húzva a bemenet a pozitív feszültség lökés nem zavarja. Sőt. A negatív sem, mivel a 2,7V-ig nem esik le.
Ezért kötik a gombicokat mindig fordítva. Ha lefelé húzza a bemenetet az ellenállás még akkor is bekapcsolást érzékel ha hozzáérsz a bemenethez. Hála a jó kis fetes konstrukciónak, ami egyébként mindenhol előny
(#) watt válasza Norberto hozzászólására (») Jún 24, 2007 /
 
Szerintem nem derül ki, hogy van e felhúzó, de az sem, hogy nincs. Sőt az sem derül ki, hogy a gomb megnyomására milyen szint lesz a bemeneten.

tszaboo! Leírnád hogy van megoldva a gomb bekötése?
(#) Norberto válasza Topi hozzászólására (») Jún 24, 2007 /
 
Igen, de itt jelen esetben teljesen más volt az előírt feladat :yes:

Idézet:
„Azt szeretném mérni, hogy hány gombnyomás után pereg a gomb 255-öt.”

by tszaboo
(#) Topi válasza Norberto hozzászólására (») Jún 24, 2007 /
 
Teljesen mindegy. Leírása alapján pont a fordítottját csinálja a program, mint amit kellene. Ennek oka lehet a PORTA bemenet invertáltsága.
(#) Norberto válasza watt hozzászólására (») Jún 24, 2007 /
 
Idézet:
„tszaboo! Leírnád hogy van megoldva a gomb bekötése?”


Igen, ez is lényeges a feladat megoldásához!

tszaboo! Jelentkezz!!!

Egyébként jelen feladatot úgy a legcélszerűbb mérni, hogy a PORTA 3-as le van kötve pl. 1k-val a földre...

A nyomógomb pedig a PORTA 3-as és a tápfesz között van bekötve...párhuzamosan nincs semmilyen kondi sehol!

Így lehet legreálisabban megmérni a tényleges pergések számát...
(#) tszaboo válasza watt hozzászólására (») Jún 24, 2007 /
 
mivel még lusta voltam saját panelt csinálni, ezért a gyári LPC próbapanelon programozgatok. Mondjuk lassan kinövöm. Csatoltam a leírását, van felhúzó ellenállás (kapcs.rajz az utolsó oldalon). Próbáltam a BTFSC PORTA,3-mat, azzal sem működött.
És a cél a pergés mérése lenne. Tehát ha 1 gombnyomás közben pereg mondjuk 20-at, akkor 12 gombnyomás alatt gyullanda föl a 4 darab led.
(#) watt válasza Norberto hozzászólására (») Jún 24, 2007 /
 
„Azt szeretném mérni, hogy hány gombnyomás után pereg a gomb 255-öt.”
Erre ez a program nem alkalmas. Először azt kéne megnézni, hogy a gombot egyáltalán lenyomták e, majd ha igen akkor azt, hogy hányszor "engedték el". Itt még az is érdekes lenne, hogy az "elengedés" időtartama egy prellnek, vagy egy valós elengedésnek felel e meg.

Egyébként nem is értem miért érdekes, hogy egy gomb mennyit prellel? Simán ki lehet védeni mindenféle prellt programból.
(#) watt válasza tszaboo hozzászólására (») Jún 24, 2007 /
 
Akkor a JP5 be van tűzve?

(#) tszaboo válasza watt hozzászólására (») Jún 24, 2007 /
 
Most hogy mondod, valami van abban, hogy nem nézem a felengedést. A Jumpereket erről már lehagyták, nem lehet lekötni a dologkat, minden fixen rá van kötve a PIC-re ezekett lehetett megszakítani egy korábbi revízióban. De tényleg hibás a programom, elmegyek átdolgozni.
Topi: A cikked nagyon hasznos, várom a folytatását, tényleg a gombokkal kéne foglalkoznod.
(#) watt válasza tszaboo hozzászólására (») Jún 24, 2007 /
 
Oké. Azért érdekelne miért akarod tudni a prellt?

Ha sikerül megmérned, feltehetnéd hogyan sikerült!
(#) Norberto válasza watt hozzászólására (») Jún 24, 2007 /
 
Idézet:
„Azért érdekelne miért akarod tudni a prellt?”


Szerény véleményem szerint csak a kíváncsiság hajtja ebben az ügyben tszaboo-t...

Mármint mindenhol az van írva, hogy "programból mindig kezeljük le", mert nem ad biztos működést a véletlenszerűségének köszönhetően...

Ez eddig szerintem mindenkinek világos is...

Viszont szerintem tszaboo szeretne utánajárni, hogy valójában mi is az a "folyamat", amit a prellmentes programmal kiszűrünk...hogy zajlik le, és valóban hányat "szokott" prellezni egy-egy lenyomáskor az átlagos gomb-lenyomás...

Végülis alapok tanulgatásához ez se rossz "kezdő"-feladat
(#) tszaboo válasza Norberto hozzászólására (») Jún 24, 2007 /
 
Nagyonis igazad van. Kíváncsiság.
Megírtam a kódot, ami működik, és számolja a pergést. (Prell, ez szakkifejezés?) így néz pontossan ki:

vizsgal:
lenyom:
bsf PORTC,2
btfsc PORTA,3
goto felenged
goto lenyom
felenged:
bcf PORTC,2
btfss PORTA,3
goto atment
goto felenged

atment: ... (számolás, végén jelzés)
A PORTA,3-at ellenőrzésképp világíttatom meg. A mérési eredményeim, 50 zárás-nyitás mérése:
25, 39, 34, 24, 37, 31, 30, 31, 35, 34
A mérések átlaga: 31,9
A mérések szórása: 4,53
terjedelme: 24 - 39
1 gombnyomás értéke: 1,28 gombnyomás
Az esetek 48%-ában következik be pergés, ha 1 pergéssel számolunk.
Ez csak az én elrendezésemre igaz, de -tekintve hogy máshol több százas pergésről olvashatunk- elég stabilnak mondható.
(#) watt válasza tszaboo hozzászólására (») Jún 24, 2007 /
 
Nagyon érdekes statisztika! Nem sokan álltak neki ilyen mérésnek, ezért csak gratulálni tudok!
Egyébként neked ez miért volt hasznos? A perellmentesítéshez nem kell tudni mennyit prellel.

De viszont gombnyomásra véletlenszám generálásra igen kíváló megoldás!
(#) tszaboo válasza tszaboo hozzászólására (») Jún 24, 2007 /
 
Hibát követtem el. A számlálásnál 50-et adtam meg, ami ugye nem egyenlő a .50-el vagy a D'50 -el amit én akartam (Idióta kezdő ). Tehát a mérések 80 gombnyomást jelentenek. Ezek után nem olyan jó a statisztika, mint gondoltam:
1 gombnyomás= 2,50 gombnyomás
a pergés szinte mindig megjelenik, 1 gombnyomásnál többször is.
Most a minimális időt próbálom ami a pergés megszüntetéséhez kell.
(#) hpc hozzászólása Jún 24, 2007 /
 
Sziazstok!!!!

Tudna vki ajanlani egy helyet, ahol olcson tudnek venni PIC egetot. USB-s kene, mert a gepemen sajnos mar nincs RS232.

Koszi a segitsget!

udv.: hpc
(#) Norberto válasza tszaboo hozzászólására (») Jún 24, 2007 /
 
Idézet:
„a minimális időt próbálom ami a pergés megszüntetéséhez kell.”


Á, szerintem nincs értelme ennyire kihegyezni ezt a dolgot

Az a legjobb, ha az átlagos pergési idő sokszorosát várod meg...és akkor biztosan nincs már pergés...nameg ezért is szoktak néha a figyelni kívánt bemenetekre (amik ugye fel vannnak húzva tápra Topi által fentebb is említett okok miatt) egy kisebb kondit tenni a föld felé...
(#) watt válasza hpc hozzászólására (») Jún 24, 2007 /
 
www.chipcad.hu
(#) tszaboo válasza Norberto hozzászólására (») Jún 24, 2007 /
 
Igazad van, nincs értrelme. 1 millisec-nél már alig volt, de még érzékelhető volt! Aki bombát akar építeni , vagy valami más fontos dolog miatt akarja megszüntetni, az használjon többet. Kössz a segítséget mindenkinek.
hpc: A pickit 2-t ajánlom, itt van egy az orrom előtt, olcsóbbat nem találsz.
watt: véletlenszám generálás? Nos igen, észrevettem, hogy ilyen parancs nem létezik a pic-eknél, és lehet hogy hiányozni is fog, de én inkább a timer0-ra gondoltam. De csak gondolkodom rajta, megoldásom még nincs.
(#) hpc hozzászólása Jún 24, 2007 /
 
koszi szepen a segitseget
Következő: »»   47 / 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