Fórum témák
» Több friss téma |
Ránézésre hibásnak tűnik a logika: akkor is végrehajtásra fut, ha előzőleg nem volt lenyomás. A felengedés vizsgálatánál is nézni kell az előző állapotot.
Szia!
A Mikroelektronika MokroC környezetében van rá külön függvény! Nézd meg a súgóban. Ennek ellenére én inkább hardveres pergésmentesítést használnék.
Egyszer volt programozva még próbapanelon, ott minden gond nélkül ment.
Idézet: „Ránézésre hibásnak tűnik a logika: akkor is végrehajtásra fut, ha előzőleg nem volt lenyomás. A felengedés vizsgálatánál is nézni kell az előző állapotot. Válasz hozzászólás írása” Az a probléma ha jól értem hogy ha nem nyomok le semmit se akkor végre hatja a "nyvegrehajt();" fügvényt???
"Button Library"
Pontosan hogy is működik??
Igen. Mellesleg nem tudom, hogy mi mindent csinál a nyvegrehajt() függvény, azt is meg kellene gondolni, hogy érdemes-e azt a megszakításból hívogatni.
A hozzászólás módosítva: Szept 22, 2017
Most mobilról vagyok, de gyöyörű leírása van. Ezt még nem használtam mert inkább a hardverest részesítem előnyben. Ha gép előtt leszek megnézem. Viszont arra biztosan emlékszem, hogy régebben a neten találtam Magyar nyelvű leírást példákkal is.
u.i. Megnéztem neked a súgót. (Kép alul) paraméterekben megadod a portot, pint, pergés figyelés idelyét és az aktív státuszt. A hozzászólás módosítva: Szept 22, 2017
500ms es időzités állítottam be de még mindig perget.... Néha. Tudok v csinálni vele valamit de ahogy észre vettem lenyomáskor csinálja nem elengedéskor. Ötlet trükk??
Lehet, hogy rosszul gondolom, de én így próbálkoznék:
Megjegyzések: 1. Normális nyomógomboknál 15 - 30 ms-nál nincs szükség hosszabb pergésmentesítésre. 2. Szerintem logikusabb a nyomógombokhoz tartozó akciókat a lenyomáshoz kötni.
Köszönöm a közreműködésed, az átvitel stabilan működik a hw elkötésének korrekciója óta.
Idézet: „Szerintem logikusabb a nyomógombokhoz tartozó akciókat a lenyomáshoz kötni.” Azért választottam a felengedéskor történjen az akció mert ha két gombot akkarok lenyomni egyszerre azt könnyeb ellenörizni. Ha lenyomáskor történne az akció nem lenne idöm a másik gombot lenyomni hogy az történyen amit szeretnék. Vagy erre van megoldás hogy ha lenyomáskor van az akcio és ha két gombotot nyomok egyszerre érzékelje?? Vagy ahogy nézem a kódod alkalmas errre.....
Felengedni sem tudod egyszerre a gombokat.
Én ezt mindíg úgy oldom meg, hogy teszek egy végrehajtás késleltetést mindegyik gombhoz, és a késleltetés lejártakor megnézem, hogy a másik gomb meg van-e nyomva.
Hat a felengedes sorrendje mar mindegy mert amikor megnyomsz egy gombot es meg egy gombot egyszerre akkor be billentek 2 valtozo bitette es akkor hajtom vegre ha mind elvan engedve de sajnos nem valtbe.
Vagy is ha jol ertem ha megnyomok egy gombot es varok xy idot es utanna ranezek megint a gombokra es ha van plusz gomb lenyomas akkor ismet varok xy idot es vegre hajtom. Ha nem volt plusz gomb lenyomas akkor pedig elso varas utan vegrehajtja. Jol ertelmeztem ???
Sziasztok,
Hozzátok fordulok, mert tanácstalan vagyok. Most próbálom ki életemben először egy PIC ADC modulját (PIC16F1825). A lényeg annyi, hogy ha a konvertálás eredménye nagyobb mint egy meghatározott érték, akkor világít egy led. Valamiért nem működik, viszont ha debug módban futtatom MPLAB-ban, akkor tökéletesen működik, világít a LED is. Mi lehet a baj szerintetek?
Na azt hiszem meg van a hiba.....
Milyen balek vagyok Mindjárt kipróbálom..
Nem jól értelmezed.
Ha lejárt a várakozás, megnézed a másik gombot. Ha nincs megnyomva, akkor az egygombos, ahhoz a gombhoz tartozó rutint, ha meg van nyomva, akkor a kétgombos rutint futtatod le.
Sziasztok!
PIC16F684-el kapcsolatban lenne kérdésem. Futófényt készítettem a mikrokontrollerrel. A problémám az, hogy az RC0 és RC1-es lábakra rakott LED-ek nem világítanak. Az adatlapja szerint használható normál I/O lábnak is. Alap esetben a 2. komparátor 2 bemenete ez a 2 láb. Hol írhattam el a programot? Az inicializálás a következő:
A hozzászólás módosítva: Szept 23, 2017
Szia!
Most mobilról vagyok, nincs előttem adatlap. Nem lehet, hgy belefutottál egy open collector -os kimenetbe?
Adatlap szerint nincs különbség az PORTC lábak között, az én értelmezésem szerint. Az érdekesség még az, hogy egy kész program .HEX fájlját programoztam több PIC-be és egyszer világított a 2db LED, egyszer nem (nincs kontakt hiba és egyéb hardveres probléma). Amelyiknél nem világított, ott viszont sehogy nem sikerült rájönnöm, hogy mi lehet a probléma.
Üdv!
Nekem is hasonló problémám van csak PIC16F877A-val,én is futófényt készítettem és egy láb (led) nem működik(pontosabban a PIC 6. lába).Először azt hittem hogy megöltem a lábat 2 PIC-nél is,harmadjára vettem egy új PIC-et ,de ugyanaz a probléma.Jó lenne ha megoldódna,mert nagyon kéne az az egy láb.
Az azért nem megy valószínűleg mert open draines az a kimenet.
Idézet: „RA4/T0CKI bit4 ST Input/output or external clock input for Timer0. Output is open drain type.”
Túlterhelés és RMW hiba is okozhatja, hogy nem a megfelelő mintázat alakul ki a kimeneteken. A fenti sorok bit műveletekre (bsf, bcf utasításokra) fordulnak. Ezek a Read-Modify-Write műveletek és az olvasás során a port bemenetek aktuális értékét kapják meg, azon végeznek műveletet és a port kimeneti regiszterébe írják az eredményt. Túlterhelés: A LED árama miatt egyes kimeneteken nem alakul ki a magas szint beolvasásához szükséges feszültségszint. RMW hiba: Az előző módosítás hatására létrejövő jelváltás nem jut el addig a szintig, hogy a közvetlenül utána kiadott RWM művelet beolvasása már az új értéket tudja beolvasni. Mi lenne, ha a biteket egyszerre változtatnánk meg:
A hozzászólás módosítva: Szept 24, 2017
Köszönöm a választ. Gondoltam erre is és ki is próbáltam. Sajnos nem jött be úgy sem. Kb 5 fénysor már kész van. Úgy csináltam, hogy egy tökéletesen működő PIC-ről lemásoltam a HEX fájlt és azt raktam fel a többi PIC-re és 5 ből 2db tökéletes volt, 3db-nál pedig ez a probléma. De tudom, hogy ami jól működött azzal is volt az elején ilyen probléma, de kikapcsoltam a komparátort benne és működött tökéletesen. A történethez hozzátartozik még hogy ebay-ről vásároltam a PIC-eket. Előfordulhat, hogy ennek köze van a hibás működéshez?
A hozzászólás módosítva: Szept 24, 2017
Mit kell csinálnom hogy működjön az a kimenet is?
Ha jól értelmezem akkor úgy működik, hogy amikor nyitva van akkor húzza le GND-re a lábat. Tehát a LED negatív lábát kell kötni a PIC kimenetére, a másikra pedig 5Vot vagy amennyit szeretnél, egy ellenálláson keresztül.
Ha jól értelmezem, van olyan panel - kontroller párod, ami működi és van olyan pár, ami nem működik. Mi történik, ha kicseréld a működő pár és a nem működő pár kontrollerét. Hol jelentkezik a hiba?
Idézet: Nagy a valószínűsége de nem 100 %. „ebay-ről vásároltam a PIC-eket. Előfordulhat, hogy ennek köze van a hibás működéshez?”
Sajnos már nincs nálam működő palnel-kontroller pár, de kipróbáltam, hogy átrakom a jól működő mikrokontrollert a rosszul működő helyére és a probléma megoldódott, tehát a kontroller programja a rossz, annak ellenére, hogy ugyan az a hex fájl van benne. Közben kipróbáltam egy közvetlenül a Microchiptől vásárolt kontrollerrel is a kódot és ugyan az a helyzet, nem világítanak a LED-ek így nem az ebay-es PIC-ekkel van a baj.
|
Bejelentkezés
Hirdetés |