Fórum témák
» Több friss téma |
Igen, a pergés mind összeérintkezéskor, mind szétváláskor jelentkezik. A legegyszerűbb megoldás az pergésmentesítésre, ha a gombok olvasását bizonyos időközönként lefutó megszakítási rutinban helyezzük el, ami eltárolja azokat egy változóba. A főprogram pedig ezt a változót ellenőrzi csak.
Ezt lehet finomítani is: A megszakítási rutinban a változót csak akkor állítjuk be, ha felengedett->lenyomott átmenet van, és csak akkor töröljük, ha lenyomott->felengedett átmenet van. (Ehhez tárolnunk kell az előző állapotot.) Ilyenkor a főprogram a változó olvasása után törölheti is azt, így 1 lenyomáshoz 1 esemény fog tartozni. (Pl. 1 gombbal lehet így valamit ki-be kapcsolni.)
A másik (hardveres) megoldás: egy ellenállás és egy kondenzátor bekötése a lábra, valamint Schmitt-triggeres bemenet használata.
Persze megszakításrutin nélkül is megoldható a dolog, ha nincs időérzékeny dolog a programban. Ekkor csak minden érzékelt állapotváltozás után várni kell egy picit. (pl. 0,1 mp-et) Így a következő olvasásra már biztosan beáll az állandó állapot.
Sziasztok. Az a kérdésem hogy a 12F675 GP3-ik bemenet csak egy ciklust hajt végre és aztán semmi addig amíg meg nem szűnik és újból nem kap jelet. Persze ez pozitív tulajdonság is lehet, de informálódnék hogy lehet e módosítani ezt a tulajdonságát. Előre is köszi. Üdv
Üdv.
Nem találtam semmilyen ehhez hasonló témát,de biztosan van,csak nem voltam elég kitartó a keresésben. Így tehát előre is elnézést kérek ha rossz helyen teszem fel a kérdésemet. Abban kérnék segítséget,hogy egy PIC égetőt szeretnék készíteni,és ehhez kellene nekem nyákterv,beültetési rajzzal. Valaki linkelne nekem?
Ha esetleg mégsem PIC égetőre, hanem PIC programozóra lenne szükséged, akkor nézz be pl. ide:
PICkit2 klón építése
Szia!
Én ERRŐL az oldalról a K128-ast építettem meg, semmi bajom vele, ami esetleg probléma lehet, hogy az újabb szériájú pic-eket már nem támogatja.
Sziasztok!
Egy futófény-szerű dolgot szeretnék összerakni, de a ledek nem sorban vannak a portokra kötve, ezért valahogy szeretném "hozzárendelni" a ledeket( port bitek) egy változó bitjeihez, amit már egyszerű léptetni/változtatni stb... Egy ilyen megoldásra gondoltam, de nem akarja elfogadni a fordító (mikroC), mi a hiba ebben, esetleg van elegánsabb megoldás is?
Sziasztok.
Egy lézeres köridőmérő-stoppert kezdtem el készíteni, amely elég szépen halad. A későbbiekben bevezetésre kerülő sleep utasítás miatt, a T1oscillátor lábaira tettem egy 32.768 kHz-s kristályt. Viszont azóta nem tudom belőni, hogy századmásodpercenként növelje 1-el a global_t változót a Timer1. Jelenleg 2 perc alatt 33mp-et késik. Gondoltam a "set_timer1(-327);"-et átírom 253-ra, de ilyenkor átvált kb 2.5mp-es ciklusra a 0.01 helyett. Áttudná valaki írni nekem úgy, hogy tizedmásodpercenként növelje a Timer1 a global_t változómat? Vagy mit kell átírnom mire? A másik, mellékes kérdésem, miért van az, hogy ha váltogatom a menüt akkor még jobban késik a timer1?? Előre is köszönöm a segítséget.
Esetleg próbáld meg EZZEL kiszámoltatni az értékeket. Én ezt használom ha timer kell egy programhoz.
http://kapcsolasok.hu/digitalis/61-pic-eget
Ezt találtam nemrég és véleményeket kérnék,hogy ez jó lenne-e. Jah és még azt sem értem,hogy itt a PIC-et hova kell csatlakoztatni,hogy belehessen égetni?
Köszi, de nem hiszem, hogy segít, mert "set_timer1(-283);" -al késik de set_timer1(-282);-el meg siet. Szóval köztes nincs.
Valamit máshogy kellene megírnom a programban, csak nem tudom mit és hogyan.
Egyszóval: Ne.
Idézet: „- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.”
Szia!
Idézet: Már hogyne lenne... Csináld azt, hogy minden 20. lefutás -282 -val megy, a többi -283 -mal...„Szóval köztes nincs.” Idézet: Nem csodálom: 32768 = 2^15, ez nem osztható 100 -zal, azaz inkább 25 -tel (100 = 4 * 25).„T1oscillátor lábaira tettem egy 32.768 kHz-s kristályt. Viszont azóta nem tudom belőni, hogy századmásodpercenként növelje 1-el a global_t változót a Timer1” Idézet: A timer1 regisztere 16 bites (C -ben nem látszik), így a -327 = 0xFEB9, a 253 pedig 0x00FD. A Timer1 erről az értékről indul és növekszik a 0xFFFF ig, azután átfordul. Ekkor keletkezik a megszakítás.„"set_timer1(-327);"-et átírom 253-ra, de ilyenkor átvált kb 2.5mp-es ciklusra” Az időzítés pontosítható a TMR1 +=(-327); megoldással - ugyanis, amíg a vezérlés eljut a set_timer -ig, a timer1 regisztere már növekedhetett. Idézet: „Már hogyne lenne... Csináld azt, hogy minden 20. lefutás -282 -val megy, a többi -283 -mal...” Hát ez elég macerásnak tűnik, mert még így se pontos, persze el lehet vele bíbelődni, hogy csak minden X.nél -282, a többinél meg -283, meg így változtatgatni még jó nem lesz, de ez életfogytig tartó meló szerintem. Idézet: „Nem csodálom: 32768 = 2^15, ez nem osztható 100 -zal, azaz inkább 25 -tel (100 = 4 * 25).” Igen, időközbe rádöbbentem, hogy a 32768 hz-s kvarc csak másodperces számolásra jó, épp ezért folyamatban van egy 40kHz-s kvarc beszerzése, csak sajnos Magyarországon nem sok helyen árulják, és egy pár forintos vacakért meg nem szeretnék 2e Ft futárt fizetni. Ha esetleg tudsz egy üzletet ahol postán LEVÉLKÉNT feladnák, légyszi szólj Idézet: „A timer1 regisztere 16 bites (C -ben nem látszik), így a -327 = 0xFEB9, a 253 pedig 0x00FD. A Timer1 erről az értékről indul és növekszik a 0xFFFF ig, azután átfordul. Ekkor keletkezik a megszakítás. Az időzítés pontosítható a TMR1 +=(-327); megoldással - ugyanis, amíg a vezérlés eljut a set_timer -ig, a timer1 regisztere már növekedhetett.” Ez most, hogy is nézne ki CSS C nyelven? A "set_timer1(-327);"-ből nem igen értem, hogy lesz " TMR1 +=(-327);"
Szia!
32768 = 100 * 327 + 68. Azaz (100 - 68) db -327 -es lefutás + 68 db -326 -os lefutás... Ha pesti vagy, az FDH ingyen házhozszállítja (inkább: benne van az árában)... Nem használom a CCS -t...
és már kész is van... Idézet: „32768 = 100 * 327 + 68. Azaz (100 - 68) db -327 -es lefutás + 68 db -326 -os lefutás...” Tyűűű, ennek nekifutottam vagy 3-szor és még most se biztos, hogy jól értelmeztem. Tehát valami ilyesmire gondoltál?:
Mert így nem igen jó sajna, így sokat késik. (Bocs az alma változóért, de hirtelen az jutott eszembe, mint mindig.) Idézet: „Ha pesti vagy, az FDH ingyen házhozszállítja (inkább: benne van az árában)...” Az széééép. 383 Ft. Itt csak 220 Ft Áfával. Bővebben: Link Csak kérdés levélben feladják e, írtam már nekik, holnap talán válaszolnak. Sajnos Magyarország nagyon déli részén élek, tehát BP nagyon messze van.
Sziasztok!
16F886 ADC gondom van nekem. Annyit szeretnék elérni egyenlőre, hogy 1 bájtot kiírjon. A kapcsolás egyszerű, poti táp test közt, csúszka 1KOhm-al a bemenetre. A csúszkán 10n. A gondom az, hogy félállásig nullát mér, felső állásban pedig 144-et. Közte persze szépen végigmegy. A beállítások:
Az ADRESH-t írom ki. Remélem jó az az elgondolásom, hogy 0-255 között kellene mutatni neki. Mit szúrhatok el? Előre is köszönöm a segítséget!
Vagy esetleg így értetted?:
Mert így meg megy kb 2mp-et majd megáll kb 1 mp-ig és ez ismétlődik végig. Nem tudom miért. Áhh mind1 is, hagyjuk szerintem. Köszi azért a segítséget Hp41C. Majd ha meglesz a 40kHz-s kvarcom akkor be fogom tudni állítani könnyen és pontosra. A sleep funkció amúgy is majd talán egy másik project része lesz, csak ebben a projectben akartam kipróbálni és tökéletesíteni tudásom e téren. Viszont még a másik kérdésemre várnék választ valakitől, hogy a Timer1-et mi foghatja vissza a számlálásban? A gomb megnyomása? A delay_ms? Vagy mi? Mert ha váltogatom a menüt, és vissza térek a számlálós menübe, elég szépen le van maradva ahhoz képest ahol tartana ha nem mászkálnék a menüben.
Nyilván a potmétert nem jól kötötted be.
A középre menjen az egyik analóg láb, a poti 2 szélső lába közül meg az egyik legyen a föld a másik a táp. És jó is lesz. Idézet: „Remélem jó az az elgondolásom, hogy 0-255 között kellene mutatni neki.” Igen, jól gondolod. Valahogy így mint a csatolt képen:
Természetesen így van bekötve. Ez a része elég egyértelmű.
Üdv.
TX-4MSIL, BC-NBK adó-vevő páros (433,92MHZ) jelének PIC-el való feldolgozásával akarok megismerkedni (PIC18F4550) Elsőször a vevő jelének feldolgozásával majd az adó modulálásával. Ehhez kérek segítséget, valami forrás anyagot amiböl ki tudok indulni. Az oldalon lévő cikkeket olvastam, de az PIC16F877-re és mikroC-ben van. (én C18-al próbálkozom)
Szia. Ezekhez az égetőkhöz hol találtál kapcsolási rajzot esetleg nyáktervet? Bővebben: Link
Szia!
Ha ezt szeretnéd (k128), akkor a dokumentumában benne van a nyák illetve kapcsolási rajz is. És a hozzá való program, pedig tartalmazza ez a fájl. Megtalálható a pic-be égetendő hex is. Utólagosan megjegyezném, hogy az honlapon megtalálható minden, amire szükséged van.
Köszi. A hex-et megtaláltam hozzá azon az oldalon. De a dokumentációt nem. Köszönöm szépen! Ezek szerint én voltam a béna.
Szia!
Miért pont ezt? Miért nem a Microchip által (még) támogatott PICKit2 -t építed meg? Csak a problémád lesz vele... Ezt meg azt a típust miért nem kezeli, miért nem kezeli jól? Miért nem őrzi meg az OSCCAL és BOR értékeket? Miért nem tudja a nem 5V -os kontrollereket. Aztán majd ezeket a kérdéseket szépen egyesével felteszed nekünk... Ráadásul egy drága, felületszerelt illesztőt tartalmaz: FT232 a HeStore -ban 2326Ft, a 18F2550 csak 1893 Ft. Az nem jelenthet problémát, hogy a 18F2550 -et fel kell programozni, a kiválasztottban is van egy felprogramozandó 16F628...
Megvan. Leírom azért hátha más is belefut, bár egyszerű volt végül: nem vártam eleget csatornaváltás után.
Sziasztok!
Az mitől lehet, hogy van egy PIC16F887-esem, amelyre írtam egy stopper programot, amely eddig tökéletesen pontosan számolt 4Mhz-s kristállyal Timer1 módban tizedmásodperc pontossággal. Utána erről a kódról csináltam biztonsági mentést, majd átírtam egy 32.768kHz Timer1OSC lábra rakott oscillátorhoz, de nem igen jött össze a tökéletes időzítés, hogy tizedmásodpercbe számoljon. Majd a biztonsági mentéses programot visszatöltöttem, és lám, ugyan azzal a 4Mhz-s kristállyal, most másfél perc alatt fél percet késik.. Létezik hogy a sok használattól belassul a kvarc vagy a PIC? Mert se a kód se az kapcsolás, sőt még az alkatrészek sem változtak a kiinduláshoz képest. Össz-vissz csak kb 20-szor lett égetve a PIC közben, meg ment egy pár órát. |
Bejelentkezés
Hirdetés |