Fórum témák

» Több friss téma
Fórum » PIC programozás mikroC fejlesztőkörnyezetben
Lapozás: OK   7 / 7
(#) Elektro.on válasza scooby_ hozzászólására (») Márc 15, 2018 /
 
Véleményem szerint ez hibás. Miért nem használod a MikroC saját pergésmentesítő függvényét?
(#) scooby_ válasza Elektro.on hozzászólására (») Márc 15, 2018 /
 
Most néztem meg éppen, az ha jól látom ugyan ezt csinálja?
Szintén felvesz egy változót, és a gomb lenyomásával azt irkálja át, és figyeli az IF-en belül.
Működni az enyém is működik, nem pereg, gombnyomásra nem hajtja végre ugyan azt az utasítást többször addig, amíg a gombot nyomva tartom.
(#) Lamprologus válasza scooby_ hozzászólására (») Márc 15, 2018 /
 
Ez hogyan pergésmentesít?
hirtelen nem látom hogyan tudná megkülönböztetni hogy é nyomtam meg anyomógombot 5 perc alatt 10-szer, vagy egy gombnyomáskor pattognak az érintkezők egymásom 10-szer 0.1s alatt.

Mondjuk ha a POWER változó tényleg csak egyel nő minden gombnyomáskor akkor ok ...
(#) scooby_ válasza Lamprologus hozzászólására (») Márc 15, 2018 /
 
Csak eggyel nő, bit típusú változó, csak 0 és 1 lehet az értéke.
(#) Lamprologus válasza scooby_ hozzászólására (») Márc 15, 2018 /
 
Akkor próbaképp állítsd át olyanra hogy számolni tudja a gombnyomásokat ... hátha meglepő eredmény lesz!
(#) Lamprologus válasza scooby_ hozzászólására (») Márc 15, 2018 / 1
 
A pergésmentesítés nem azt jelenti hogy többször végrehajtja-e az adott utasítást amíg a nyomógomb nyomva van!

A nyomógomb érintkezői nem mindig kapcsolnak azonnal stabilan ... néha előfordul hogy"pattognak" egymáson, ezt a PIC érzékelheti úgy hogy többször nyomták meg a gombot!

Nézd meg itt a nyomógomb kezelés részt!
A hozzászólás módosítva: Márc 15, 2018
(#) Elektro.on válasza scooby_ hozzászólására (») Márc 16, 2018 / 1
 
Én úgy látom, hogy amikor pereg a nyomógomb mindig végrehajtja a Power++ utasítást.
A hozzászólás módosítva: Márc 16, 2018
(#) scooby_ válasza Lamprologus hozzászólására (») Márc 16, 2018 /
 
Így már világos, hogy mire gondoltok!
Pergésmentesítéshez használjam a Delay_ függvényt, vagy inkább erre is a Timer0-t érdemes?
(#) benjami válasza scooby_ hozzászólására (») Márc 16, 2018 / 1
 
Nyomógomb lekérdezést szerintem Timer interruptban (vagy legalábbis az által időzítve), másodpercenként 30 mintavétel körül érdemes megcsinálni. Így simán megoldható, hogy úgy működjön, mint egy normál PC billentyűzet, tehát meg lehessen különböztetni a rövid lenyomást, a hosszú lenyomástól, sőt folyamatos nyomvatartás mellett beállítható sebességgel ismételjen.
(#) scooby_ válasza benjami hozzászólására (») Márc 16, 2018 /
 
Mintavételezés alatt mit értesz? Az OprionReg-ben lévő osztót?
Azthiszem az 1:32-höz jelenleg.
(#) benjami válasza scooby_ hozzászólására (») Márc 16, 2018 / 1
 
Mintavétel alatt azt értem, hogy másodpercenként 30 alkalommal olvasod be a gombok állapotát. Ha a gomb le van nyomva, de az előző beolvasás alkalmával még nem volt, akkor most lett lenyomva, tehát el lehet végezni az ehhez tartozó tevékenységet. Ha már előzőleg is lenyomott állapotban volt, akkor már nem kell csinálni semmit. Ehhez persze mindig el kell tárolni a gombok állapotát, hogy a következő beolvasáskor legyen mivel hasonlítani.
(#) scooby_ válasza benjami hozzászólására (») Márc 17, 2018 /
 
Ez pont azt csinálja amit mondasz. Akkor ezek szerint ki csak ki kell egészítenem azzal, hogy ezt másodpercenként 30x nézze meg a program. Gondolom erre meg külön szubrutint érdemes létrehozni? Szerk.: Sőt, még talán a belinkelt sorokat is külön érdemes lehet szubrutinba beírni.
A hozzászólás módosítva: Márc 17, 2018
(#) scooby_ válasza scooby_ hozzászólására (») Márc 17, 2018 /
 
Nos, gyerekek, megoldódott a probléma. Igazából semmit nem adtam hozzá a programhoz, csupán az interrupt szubrutint legutoljára töltetem be a programmal, illetve ezeket a kezdeti némító és szövegvillogtató sallangokat mindet a while ciklus végére tettem. Így most megfelelően működnek a gombok is. Természetesen a pergésmentesítést a leírás alapján beleírtam minden nyomógomb figyeléshez, így a gomb lenyomása után 20ms-mal később végzi el a hozzá rendelt teendőt.
Mondjuk erre igazán gondolhattam volna előbb is, mielőtt Titeket kezdelek el túráztatni, hiszen valahol olvastam, hogy a programozó olyan sorrendben égeti be a programot a mikrovezérlőbe,
ahogyan az a fejlesztő környezetben fel van tüntetve, és Ő azt úgy is fogja lefuttatni.


Következő amivel feltehetően szívni fogok, az ezen négy nyomógomb távirányíthatósága. Erről még olvasok, keresgélek... Ha nem értek valamit, engedelmetekkel itt kérdeznék.

Addig is köszönöm mindenkinek az eddigi türelmét és készséges segítségét. A kezdőkkel sose könnyű.
A hozzászólás módosítva: Márc 17, 2018
(#) scooby_ hozzászólása Ápr 1, 2018 /
 
Sziasztok, újra itt, és egy kis segítség kéne. Túlhaladtam az erősítő vezérlésén, most épp BLDC motorvezérlést készítek PIC16F887-tel. Az alap kész, most tartok ott, hogy be kéne írnom az áramkorlátot. Ez úgy működik, hogy a FET-ek source ágában van egy Shönt ellenállás, és azon figyeli a PIC a feszültséget ami a PIC AN1-es portjára van visszakötve. A PIC AN0-án potméter van, Ő szabályozza a PWM jelet. Valahogy úgy kéne a programot megírnom, hogy az áramgenerátor a PWM jellel szabályozza az áramot. Esetleg tud valaki ebben segíteni? Előre is köszönöm! Kellemes húsvéti ünnepeket Mindenkinek!
Következő: »»   7 / 7
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu