Fórum témák
» Több friss téma |
Sziasztok!
Készítettem egy hőmérséklet távadó kapcsolást. A kérdésem, hogy a PIC fennmaradó lábait amire nincs szükségem a kapcsolásban hagyhatom-e üresen vagy fel kell húzni egy ellenállással? A másik kérdés, hogy a kapcsolás jó-e ha a digitális hőmérséklet szenzor értékét szeretném RS232 vonalon továbbítani? Üdv: attis71
Akkor ha nem feltétlen szükséges, akkor jobb is megszakítás nélkül figyelni az encoder lábait?
Mind a kettő jó, ha megfelelően csinálod ( és mind a kettőnek lehet hibája, ha rosszul ! )!
Steve
Értem, arra nem jöttem még rá, hogy ha ugye az encodert megszakítással figyelem, és amikor tekerem azt rögtön ki szeretném iratni az lcd-re azt hogy lehet megoldani, mert ugye lcd out-ot nem enged a megszakításba?
A hozzászólás módosítva: Feb 15, 2013
A megszakításban egy flag-et billentesz át. A főprogramban figyeled a flag-et. Ha bebillent, kiíratod és utána visszabillented.
Értem, így van, viszont nekem az a gondom ha például beteszek egy nagy késleltetést a főprogramba,akkor a megszakításnak ugye meg kéne rögtön szakítania, és akkor viszont nem írja ki egyből az lcd-re a változást csak ha lement a késleltetés.
Akkor ne tegyél késleltetést. Használj más módszert. Például ott is lehet flag-et használni és egy feltételt adni neki...
Rendben, és elvileg akkor, ha mégis késleltetés van, azt akkor nem lehet megkerülni a megszakítás utáni LCD kiíratással sehogy?
A hozzászólás módosítva: Feb 15, 2013
Pedig a késleltetéssel van gondod. Esetleg használj rövidke késleltetést és ciklikusan ismételd meg kívánt számban. A ciklusban lehet figyelést tenni.
Köszi, próbálkozom. ....(5 perccel később) .....Működik!!! Köszi mindenkinek!
A hozzászólás módosítva: Feb 15, 2013
A pollingos és a bemenet megszakításos mód mellett van még harmadik módszer is az encoder-re ha nem 10000/perc fordulatú eszközhöz használod. Én timer megszakításból kérdeztem le az optikai encodert (mint a görgős egér). Másodpercenként 10000 megszakítással sosem hibázott (valószínűleg kevesebbel is jól ment volna, de ez is belefért). Optocsatolósnál érdemes smith-triggeres bemenetet használni.
Nyomógombokat is mindig időzítő megszakításból szoktam használni kb 30 lekérdezés/másodper sebességgel és ott sem szokott sosem pergés problémám lenni.
Viszont így a "pollingos" program is működik ugyanúgy, akkor mire jó megszakítást használni?
Ha nem érsz vissza időben a lekérdezéshez ( sok más dolga is lehet a processzornak! ), akkor a polling nem érzékeli a változást, míg megszakításban ettől függetlenül is tudja érzékelni, és ha lesz időd majd feldolgozod !
Steve
Olyan dolgokra, amikre a lehető leggyorsabban kell reagálni. Az ember által nyomkodott, csavargatott, állítgatott dolgok nem ilyenek.
Arra, hogy ne kelljen állandóan vizsgálni a változást. Ha van, odaugrik. Ha nincs, nem kell csinálni semmit.
Értem, köszönöm!
Sziasztok!
Olyan gondom van hogy szeretnék építen az airsoft os játékainkhoz egy ketyerét ami valamiféle hangot ad ki! Ha jól tudom akkor ezt egy pic el meg lehet oldani. A tervem a következő, építenék egy dobozt amibe beletennék valamit ezt kellene megnehezíteni pl egy láthaó lézer sugárral amit ha megszakít akkor az robbanó hangot ad ki, netán még villan is pl egy vaku. Na valójában ezt szeretném megoldani úgy globál. Tudna valaki segíteni? Netán megépíteni a hozzá való elektronikát? Előre is köszi!!!
Köszönöm! Küzdök vele. Majd csak sikeredik...
Nekem nincs is boot gomb. Az Neked hova csatlakozik?
Akkor ez a gond! Ha nincs boot gombom, sehogy sem tudom rávenni a load-ra... Igaz? Köszi.
Így van, valahogy közölni kell a PIC-nek hogy a bootloader vagy az általa feltöltött alkalmazói program induljon el. Ha nem jó az RB5 láb erre, a Microchip Solutions/USB/Device - Bootloaders/HID/Firmware - PIC18 Non-J/io_cfg.h fájlban az sw2 definíciójánál tudod átírni. Ezután újra fordítod a programot (ehhez sajnos teljes értékű, vagy 60 napnál fiatalabb telepítésű fordító kell hogy beférjen a helyére), a kapott HEX-et feltöltve már az általad kiválasztott láb lesz a bootloader kiválasztó.
Sziasztok!
Van valakinek ötlete az alábbi problémához? Ha beállítom az RB megszakítást és a jel megváltozik a porton, a kimeneten kapok egy 2ms órajelet? (PIC18F4550) Segítségeteket előre is köszönöm!
Szabályzatból:
VIII. Ha nem kapunk választ? Ha a kérdésünkre nem kapunk választ, akkor ne türelmetlenkedjünk. Előszört nézzünk magunkba, lehet hogy a kérdésünk értelmetlen. Előfordulhat, hogy a kérdésünk túl nehéz, és az sem ritka hogy a feltett kérdésre már egymilliószor született válasz, így ezért nem kapunk egy egymillió-egyediket. XVIII. Csak egy helyen kérdezz! A fórumon egy kérdést egyszerre csak egy helyre tegyünk fel. Amennyiben több helyre is beírjuk ugyan azt a hozzászólást, a moderátorok kérdés nélkül törölhetik hozzászólásainkat és ki is tilthatnak türelmetlenség és tiszteletlenség miatt.
Valószínűleg azért nem kapsz választ, mert nem csak én, hanem más sem tudja értelmezni a kérdésed. Kód? Milyen kimeneten? 2ms impulzus vagy folyamatos órajel?
Én ezt alkalmilag egy dróttal szoktam megoldani. leföldeled az adott lábat, megnyomod a RESET gombot, majd elengeded, s utána megszünteted az RB5 láb leföldelését.
Lehet hogy rosszul tettem fel a kérdést. Bocsika!
A lényeg az hogy a PIC18F4550 RB megszakítását állítottam be. Ha megszakítás keletkezik a LATD0 kimenet ellenkező értékre változik. Amikor megnyomtam a RB5-ös bemeneten lévő gombot a a LATD0 kimeneten 2 ms négyszögjel keletkezett. Ez addig így volt míg lenyomva tartottam a gombot.
Pontos kapcsolás, programlista nélkül ez még mindig értelmezhetetlen.
1. Megszakításba nem teszünk várakozást.
2. Most már csak azt kellene érthető módon leírnod mit is szeretnél, mert az még mindig nem világos. |
Bejelentkezés
Hirdetés |