Fórum témák
» Több friss téma |
Van valakinek működő menürendszere LCD-re? Akár csak képen? Soha nem kellett eddig, így nincs tapasztalatom C-ben sem, így átültetni sem tudom, nulláról kellene kitalálnom. Persze, ha nincs más..
Hát ha rendesen visszaolvasol találsz itt. Legjobb emlékeim szerint Dcsabi a fórumban többször is rakott fel ilyesmit.
Másrészről minden menü más, ezt neked kellene kitalálni. Megjegyzem PARSIC-ban ez elég munkás, de meg lehet csinálni.
Visszaolvastam, kerestem, találtam (így kezdtem, mod: menü képernyő link). Van egy képernyőmentés Dcsabitól, de lehetetlen rendesen értelmezni az alacsony felbontás miatt. Ha nagyobb felbontású lenne, szerintem tökéletes lenne (legalábbis amit ki lehet hámozni a picurka méretből). De nyilván nem véletlen tette ki olyan kicsiben, gyanítom, hogy nem publikus..
Amúgy nincs szükségem személyre szabott menüre, csak legyen főmenü, almenük, és hozzá változók. A felépítése érdekel leginkább, onnan már személyre lehet szabni. A hozzászólás módosítva: Aug 16, 2016
Itt egy régi projectem ha segít. A harmadik oldalon van az LCD vezérlés.
Nagyon ne kérdezz bele, már évek óta nem használom a parsicot.
Csináltam gyorsan egy egyszerű példát ..
Bármilyen programnyelvet is használsz az elv hasonló.
Én első lépésnek kockás papíron meg szoktam tervezni az egyes menüpontokhoz tartozó LCD képet, hogy biztosan kiférjen a maximális karakterszám a sorban. Ha megvan a menüpontok száma, mondjuk 3, akkor kell egy számláló, hívjuk menü számlálónak, melynek az értéke meghatározza a kijelzőn megjelenő menü képet. A számlálót le kell korlátozni hogy csak a menüpontok számának megfelelő értéket vehessen fel, kaqkk példájában ezt IF1 végzi. Ezek után már csak feltételül kell szabni, hogy melyik menü számláló értékhez, melyik kijelző kép tartozzon.
Szaiasztok!
Látom menü a téma. Nem tudom ki mekkorában látja az általam feltett képeket? Ka a képfile nevére kattintatok (nem a képre) akkor esetleg nagyobb lesz. Egyrészt azért teszek fel képet, hogy a régi verzióban is lehessen használni a megoldásokat. A menü példa egy nagyobbacska projektből való (P4) , ami nyilván nem publikus, -kb 20 oldal tele... Mielőtt az adott projektnek nekilátunk célszerű a menü (beállításokat) megfogalmazni. Túl kell méretezni a változók számát és a kijelzésképek számát. Ennek szinkronban kell mennie. Ez az egyik legfontosabb dolog. Előtte néhány okosság: időzített belépés, föl-le léptetés (stabil megoldással), lépésgyorsítás. Szintek közti átlépés logikája....stb. Ha azt tartjuk szem előtt, hogy mit szeretnénk látni és láttatni, akkor könnyebb dolgunk lesz. Lehetőleg minden változót 16 bitesre állítsunk. Az állítandó (változókat, mindig ZV modullal testesítsük meg, ha nem akarjuk, hogy az automata sorszámozás megtréfáljon bennünket, a ZV modult(okat) PL ZV12, át kell nevezni pl: ADAT1, ADAT2, ...névre) utána egy limiter modul. Nem muszáj mindent drótozni, lehet az elnevezéssel is hozzárendelni, ADAT1, ez a bemeneten és a kimeneten is elnevezni, alsó és fölső határt beállítani. P4-ben már van ZV modul rest érték ezt leget használni Pl (Master Reset funkcióra csoportosan is). utána, EEprom-ot invertálva a számláló jelbementére kötni. EZ egy sor. ezt kell egymás alá 16 szor. Ha több elágazás vagy több szint kell, akkor 32 szer vagy 48 szor stb.egy egy szép fejlesztő keret. Procit nagyobbat válasszunk, ne a 150 Ft árkülönbséget nézzük. Az elején válasszünk egy alap ütemet Pl 100ms ezt osztogassuk tovább az időzítéseinkhez, és a menü dolgaihoz. A kijelző frissítéséhez is elég a 100ms, kb 50-60 különböző kijelzésképig biztosan. Használjunk gyorsabb Quartzoz ha terjedelmesebb a projekt. Stb...
Egy fontos dolog lemaradt. Az előbb említett procedúra beállításokra vonatkozik leginkább. Ha egy berendezésnek a vezérlésére szánjuk a "játékunkat", akkor az üzem közbeni fő kijelzésképet, vagy kijelzésképeket (szöveg és változók) szintén "ki kell logikázni", hogy éppen mit akarunk bemutatni. Aztán az esetleges hibajelzéseket is meg kell jeleníteni. Adott esetben az üzemi és a beállítási menű a teljes program 70-80%-t is kiteheti. Van olyan megoldásom is, hogy üzem közben 3-4 másodpercenként váltogat a kijelzéskép 5-6 kijelzéskép között. Ezt kézzel is megtehetjük, vagy ha visszalépünk a beállítási menüből 30 másodperc múlva automatikusan elkezd lépkedni...stb...Ha régi Parsicot használunk mindenképpen előre rátartással adjunk meg változókat, mert a letárolásoknál és esetleges Uart használatnál megtréfálhat bennünk a bankváltás. A rajz sokat elbír, ha lefordul az már működőképes program, kérdés: hogy azt csinálja-e amire vártunk. A hiba általában bennünk van, mert a feladatot nem jól fogalmaztuk meg, vagy a rendelkezésre álló eszközöket helytelenül használtuk.
Szia,
sajnos nagyon rossz minőségben jelennek meg a képek, különösen, ha sokminden van a képernyőn.. pl ezt a képet lehetetlen értelmezni. Ma volt időm, játszottam a változók értékállításával, hogy LCD-n kijelzett változót tudjam majd állítani (eddig ilyenre sem volt szükségem. Sokmindent progiztam régen sokféle uC-n, de ez a menü/állítgatás valahogy kimaradt. Kicsit örülök is, hogy előjött a dolog). Ezt előre vettem, úgy már könnyebb lesz az élet. Lépésgyorsítást/fel-le léptetést/limiteket nulláról megoldottam, de eszembe nem jutott volna a limiter modul, kapuzva lett megállítva mindkét irányba a léptetés. Még jó, hogy írtad, mindjárt megnézem mit tudok egyszerűsíteni ![]() Össze fog ez jönni, csak nem akartam ennyi időt rászánni. Hiába hobbi project, most fontosabb dolgok vannak.
Sziasztok.
Szeretnék egy kis segítséget kérni, elakadtam. A mellékelt programnak az lenne a feladata, hogy, ha a H1 és az F1 is jelet kap,akkor először az (R LE) 30x100 ms-ig bekapcsol, majd kikapcsol, ezután a (R FEL) 20x100ms-ig bekapcsol, majd kikapcsol és ennyi. A másik két bemenet ugyanúgy,csak mindkettő beadása esetén indítja a (R LE) kimenetet, minden mást leállítva előtte. Ez viszont a R LE után le is áll. A probléma az, hogy a szimulátorral tökéletesen működik is, de ha hadver-ben van máshogyan működik. H1 F1 jelet kap - R LE bekapcsol, majd az idő letelte után kikapcsol és leáll. Ahhoz, hogy a R FEL elinduljon, újra jelet kell adni a H' és F1 bemeneteknek. Mi okozhatja? Tud valaki segíteni? A hozzászólás módosítva: Aug 18, 2016
Szia! Ezen a gépen nincs Parsic, nem látom a projektedet. Ami ilyenkor segíthet. Az időzítéseket, Egy közös timerról kell megoldani pl: 100ms. ezt kell Zv modulokkal kapukkal set-reset egyéb eszközökkel kombinálva kialakítani. Lehet 10-20-50 db ilyen kis időzatőt is így csinálni, ez atomstabil. Én már régebben több megoldást tettem fel rá, de mostanaban is gyakran szóba került. A PIC-hez mindenképpen legyen Quartz. Aztán, a bemenet fizikai kialakítása és a program bemenet közti valós határozott kapcsolat fontosságát említeném még meg...
Szia, Most nem tudok többet segíteni, hétfőn felteszem nagyobb felbontásban, ha addig nem léptél rajta túl, addig a leírtak szerint próbálkozz kisebb terjedelemben, pl: 2X,3X4-5 menüpont...
A bemenettel kapcsolatban mire figyeljek? Most opto nélkül gnd-re zárom amikor gombot nyomok. Van egy optocsatolós hardverem is,de végtére ugyanúgy gnd-re kapcsolja az is.A programban,pedig invertált.
A hozzászólás módosítva: Aug 19, 2016
Ha GND-re kapcsolsz, akkor a bemenetnek folyamatosan +5V-on kell lennie, célszerűen 4,7k-10k ellenállással felhúzva. A kapcsoló ne prellezzen. Sajnos most nem látom a progit...Az időzítéseid kialakítását nem látom. A PIC, csinál valamit, csak Te nem ezt várod tőle?
Igen a simulatorban végig megy mind a két kimenet,de amúgy a kettő közt nyomni kell mégegyszer bemenetre.Most ebben a hardverben probaltam ki. A ket relé a kimenet az optok a bemenetek. Itt sincs semmi ellenállás a bemenetnél. En az optokat ki szeretném hagyni a majdani hardverből. Nem kellene?Érdemes lenne az ellenállást beletenni? A kimenet lábára és a gnd-re. Escha gombot nyomok akkor ugymond athidalom az ellenállást?
A hozzászólás módosítva: Aug 19, 2016
Ebben az elrendezésben nem kell külön felhúzó ellenállás, mert a PIC B-portja belül felhúzó ellenállással van integrálva, ezt be kell kapcsolni a PIC konfigban. Ha addig nem tudod megoldani, hétfőn ránézek a progira. Addig is apró részleteiben próbálgasd ki a HW-t és a SW-t, lépésről lépésre haladj előre, miután működik már valami. Teljesen más funkciókat is adhatsz a ki és bemeneteknek, hogy meggyőződj, hogy minden felett rendelkezel-e. A reset lábra szerintem semmi szükség, de ezt már régebben javasoltuk. A konfigban át kell kapcsolni belső resetre.
A hozzászólás módosítva: Aug 20, 2016
Igen, tudom, ki is kötöttem a reset lábat és be van kapcsolva. A b portot hol kell beállítani? Abban tudsz segíteni? És még annyit szeretnék, hogy a 3-as lábat (RA.4) hogyan tudom bemenetként használni, mert ha jól látom, akkor lehetséges?
Szia!
A B port felhúzó ellenállásainak beállítását a Settings menüben találod PORTB Pull Up pipa. Ugyanitt tudod az MCLR-t I/O portként beállítanod. Az RA.4 simán használható bemenetként, csak ha kimenetnek használod akkor kell áramköri módosítás (a proci adatlapját érdemes megnézni (16F628), abból teljesen egyértelműen kiderül).
Oké,azokat meg is találtam és ki is volt pipálva.Viszont az adatlapról nekem kicsit nehezen derul ki,hogy mit kell módosítani. Meg nem annyira tudom+ezeket a dolgokat,hogy mit kell keresni.A 4es láb(MCRL) is lehet kimenetként használni?
Persze, ha I/O-ként pipálod, Ő lesz az RA.5.
És az RA4-nél mit kell módosítani,hogy kimenetként használjam?
Az A4-es port kimenetként használva nyitott kollektoros, tehát csak a GND-re tudja lehúzni az oda kapcsolt feszültséget.
Értem,szóval,ha ugy kötök be egy ledet,hogy pozitívról indítom és egy ellenálláson keresztül kötöm aa Ra4-re akkor tudom használni. Jól gondolom?
Az RA5 csak bement lehet vagy Reset, az RA4 pedig kimenetként csak nyitott kollektoros, de lehet bemenet is.
Hello! Jobb ha a Reset bementet békén hagyod. Nem igaz, hogy a 628-nak nincs annyi lába, hogy számodra elég legyen..
![]()
De, elég az ami van,csak érdekelt, hogy mik a lehetőségek.
![]() |
Bejelentkezés
Hirdetés |