Dobry den chtel bych poprosit o radu s pic 16f84 beru v potaz to ze je to vykopavka ale mam jich spoustu a zdarma takze k problemu vytvoril jsem si skusebni program pro funkci → stiskem tlacitka1 rozsvit led1 a druhym tlacitkem2 treba led2 pri opetovnem stisku by se mela vypnout. Toto je pouze cast z celeho programu tudiz potrebuji pro to pouzit funkci preruseni .
Avsak pri nahrani prislusneho programu ktery prikladam nize se deje to ze pri stisku treba tlacitka 1 se zapne dioda 2a3 nebo 12 nebo jina kombinace to same pri stisku ostatnich tlacitek …za radu predem dekuji !
trochu jinak mam rezistory proti +5V konkretne 1Kohm a tlacitkem to uzemnuji a musim to takle zachovat z duvodu pripojeni ir snimace tsop cislo si ted nevzpomenu … ktery ma v klidovem stavu na vystupu +5V Jinak tim pullup rozumim spravne ze to jsou ty softwarove pripinatelny rezistory na port ? v optionu ? A jen tak pro poradek pouzivam prekladac picdev a programator winpic s jdm neni to nejakej znamej zadrhel techto aplikaci ? diky
Preji vsem krasny den. Doplnuji tuto diskusi o schema , omlouvam se za kvalitu ale horecka 38,5 mi jaksi neumozni trvale koukat do eagle dekuji za pochopeni PS: na obrazku neni zakresleno napajeni IO ve skutecnosti ovsem pripojene je .
jen sem to tak prolit ale nic zavaznyho sem nenasel, mylsim,
zacal bych postupne , rozchodit nejdriv LED1 + TL1 , pak postupne 2-3, a nakones opet postupne pridavat 1+2/1+2+3 … , taklhle zjistis kde je problem …,
kondik 100n + 10uf u nozicek mcu mas…, ty pull-uppy 1K ? neni to trochu malo ??
Jestli jsem Tvůj původní dotaz pochopil správně, tak chceš, aby mcu reagoval na stisky tlačítek pomocí přerušení. Pokud je to tak, musíš řešit zákmity tlačítek už v zapojení HW a ne až pomocí SW…
V příloze je připojení rotačního kodéru k mcu (což jsou vlastně jen 3 tlačítka). Tlačítko kodéru není ošetřené proti zákmitům, to řeší SW. Otáčení kodérem vyvolává přerušení, tudíž musí být zákmity ošetřeny. Tlačítka jsou na VCC připojeny přes interní pull-up rezistory mcu. Odpory u tlačítek jsou 68-100 ohmů, kondenzátory 10-100n. Funguje to naprosto bezproblémově.
P.S.: Pull-up rezistory můžeš dát 5-10k, případně je nedávat, pokud mcu umí zapnout interní pull-upy. Používám AVRka, tak nevím, jesti to PICy (resp. konkrétně ten Tvůj) umí.
Vice oci vice vidi diky ! Jo moje blbost LIST P=16F627 to by mohl byt problém
Skusim si dat jeste praci s ochranou proti zakmitum a dam vedet
A ten postup skouset jedno tlacitko a jednu led to se mi neosvedcilo a to s timto vysledkem -> prerusenim od ktereho koli portu B 0 nebo 4-7 to s jednou led funguje, ovsem pripojenim kterekoli dalsi led vznika prvne popsany problem .
Sám o sobě ne, ale tady se povoluje další přerušení hned na začátku obslužné rutiny (tedy jestli správně chápu INTCON). Přitom se na začátku obsluhy něco uklízí a na konci zase obnovuje, takže pokud přijde zákmit (a tedy další přerušení) ještě před koncem zpracování jednoho, tak může nastat prů…r. Tím pádem přesun smazání příznaku až na konec rutiny těsně před návrat by mohlo pomoct.
A i kdyby se přerušení povolovalo až instrukcí retfie, stejně je nutné zákmity vyřešit, jinak bude docházet k několikanásobnému volání int rutiny při jednom stisku tlačítka.
jasne , tohle vim, mel sem na mysli to ze i kdyby se to preruseni vyvolavalo porad dokola nemuze ten zakmit na jednom tlacitku ovlivnit ostatni led, mel by vzdy ovlivnit pouze tu 1 led kterou ovlada takze tim ze osetri zakmity nevyresi problem
Dekuji za venovani se memu problemu, nerad bych abych pusobil ze jsem nasadil brouka do hlavy a nemel zajem se o to dale zajimat. Pouze mi to vyzkouseni chvili potrva mam narocne zamestnani dekuji za pochopeni
Zdravim, opet me provazi jen neuspech Otestoval jsem doporuceny soubor "main"asm od Standy33 kteremu bych chtel podekovat za profesionalni vykon avsak zapojeni se chova tak ze nesviti nic at mackam cokoli. Timto jsem se chtel zeptat jestli by se nasel jeste nekdo, kdo by mi to mohl prelozit do souboru hex.
Abych treba mohl vyloucit zavadu na prekladaci
nebo bych se chtel optat zda to nekdo jen tak ze sve iniciativy skousel a s jakym vysledkem dekuji .
Našel jsem PIC16F84 a zkusil to zapojit na nepáj.poli, vše OK, při stisku TLx se rozsvítí LEDx, při dalším stisku zhasne. Tady je zapojení i hex soubor.
Jediná změna proti původnímu programu je v zapnutí pull-up odporů na PORTB(4…7), ale správně fungují oba. Test tlačítek.zip (15.1 KB)