Fórum témák
» Több friss téma |
Fórum
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.
Csináltam gyorsan egy egyszerű példát ..
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.
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
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.
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..
Halkan mondom, Lehet abból az árból lefaragni egy keveset, mondjuk kerekre... Én sem annyiért vettem. Viszont rám ne hivatkozzatok.
Megoldódott a probléma, az opto csatolóm adta be a kulcsot es állandóan beadott. Így szépen működik, már eljutottam odáig,hogy a kimenetek iddjét is tudom állítani és a kapott tanács szerint kizárólag számlálókkal oldottam meg. Most megpróbálom a két másik bemenetet megcsinálni,ami az összes fel és összes le funkciót látja majd el,minen mást felülírva.
Érdemi update az sem volt, viszont tényleges szerkesztő hibát javítottak, ami már nagyon régóta fennállt. Én tavaly ősszel fejeztem be a kommunikációt velük, mikor több kérésemet is visszautasították (pl. hardveres szorzás az azt támogató PIC-ek esetében), mivelhogy megvan a maguk saját fejlesztési terve, és nem illeszkednek a kéréseim a képbe. Januári hibajavítás a szerkesztőben, azóta semmi. Tényleg nagyszerű terv, de ezt nem nevezhetjük fejlesztésnek. És 240Eurért ha nem is csodát, de apróbb történéseket azért várnék.
Hello! Ellenőrizni kell a kapcsolatok azonosítóját is. (Több nem is látszik a rajzon fedik egymást, így észre sem veszed a problémákat). Pld. az Shot OS2 ki és bemeneténél is RB.0 van. Ez nem lehet!
Az automatikus sorszámozást is néha ellenőrizni kell. Mert egybites változó helyett néha 8/16 bites számot rendel hozzá egy egybites digitális kimenethez. És az abszurd. A hozzászólás módosítva: Júl 18, 2016
Visszaállítottam a resetet és ha megkapja a tápot akkor be is húz az 1-es relé, de a következő gombnyomásra, és a többire sem reagál.
Mi lehet az oka?
Azért módosítgatnak rajta. Pl az idén januárban volt az utolsó Update. Amióta megjelent több mindent fejlesztettek rajta Ez valójában a 18FXXXX és a 10FXXX és a régebbi 16F 12F sorozathoz való. Ezeket általában tudja. Tudunk ehhez bőven válogatni a processzor kínálatból is. Nemrég a K sorozat néhány elemével is bővült, továbbá amelyi PIC-ben van 2db Usart, azt tudja kezelni is. Ezeket én jeleztem és előbb utóbb benne is lett. Egyéb csodákat ne várjunk. Elég sok eszköz áll rendelkezésre a programíráshoz, ami nem azt meg INC alá...Elég stabil és terjedelmes progikat lehet vele írni (soha nem fagyott le, még egyszer sem. A 18F87(K)22 már 70-80%-ig nem egyszer megtelt, a 20-25 oldalas "rajzolmányból".
A hozzászólás módosítva: Júl 17, 2016
Sajnos ezt nem tudtam , pedig terveztem a vásárlást ...
Igen, megvásároltam, ettől még nem fejlesztik...
Kapcsold vissza a PIC konfigban amt "elállítottál". Szerintem, a PIC azt csinálja amit akarsz tőle, sőt a Parsic is. Helyesen kell megfogalmazni amit akarunk! A késleltetés tartós logikai állapot jelenléte esetén érvényes, ha egy másodpercig áll fenn egy állapot, azzal nem tudunk 15 másodpercet késleltetni ilyen módon.
Idézet: De fejlesztik ! Megvan már a parsic 4 csak fizetős és hardverkulcsos .. „Nagy fájdalamam, hogy már nem fejlesztik (érdemben egy éve, fél éve semmilyen szinten)”
A parsic szimulátorában úgy látom működik. Tapasztalatom szerint innen már a proteus szimulátorában is szokott, onnan pedig már csak konfig bit beállítás lehet a baj, ha hw-en nem megy (pl. még mindig LP az XT helyett).
Nagy fájdalamam, hogy már nem fejlesztik (érdemben egy éve, fél éve semmilyen szinten) ezt a programot, de a manual-ban leírtakat betartva üzembiztos kódot fordít, ez nem vitatható. Ha szimulátorban megy, élőben is fog!
Tettem egy olyan időzítőt, amilyet mutattál, de így be sem kapcsol. Mi lehet a baj? Nem akartam kritizálni amit küldtél, még véletlenül sem. Csak a tapasztalatom írtam le.
Megpróbálok úgy csinálni mindent ahogy mondjátok, mert szeretném megtanulni, és ezt a programot megcsinálni.De sok segítségre van szükségem, mert tényleg először csinálok ilyet és biztosan sok hibát követek el, még.
Szerintem a program azt csinálja amit kell. Azt kérted tőlem, hogy illesszem be a számlálós timert a Te programrészletedbe. Ha nyomkodod a nyomógombot, a számláló és a körülötte lévő logika megfelelő módon felveszi a kivánt szinteket. Az időzítők kimenetén akkor lesz aktív jel, ha a bemenetre a beállított érték fölötti időtartamra érkezik jel. Ha lekapcsolod a bemenetről az aktív állapotot a kimenet is kikapcsol. Én ezt csináltam és a program is ezt kell, hogy csinálja. Ez annyira egyszerű, hogy nem kell róla többet beszélni. Ha Te mást akarsz, akkor alakítsd át, a szándékaid szerint. Az one-shot az direkt pergésmentesítésnek való, nem kell külön késleltetés. Ha instabillá akarod tenni a programodat, akkor csak rakosgassál bele újra, minél tőbbet. Egyetlen (!!!) Parsic modul TIMER legyen Pl 100ms, a tőbbi ebből legyen leosztva. akár 50db is lehet.
A hozzászólás módosítva: Júl 15, 2016
Hello! A Parsic azért nem egy logikai hálózat, bár ezek a szimbólumaival dolgozik. Itt a végrehajtás sorrendben történik, míg egy logikai hálózatnál az egyidőben megy végbe.
- A tápfesz megjelenésekor felesleges a számlálót/tárolót törölni. Vagy is ezzel nem kell külön foglalkozni. Ennek oka, hogy a Parsic minden változót, így a számlálók értékeit is a RAM memóriában tárolja. A program inicializáló részében viszont van egy rutin, ahol az összes RAM memóriát törli. Vagy is nullával tölti fel. Így minden számláló kezdeti értéke induláskor nulla lesz.. - Ugyan így nem szükséges egy számláló CLK bemenete elé Shot modult tenni, mert az órajel bement egyébként is felfutó élre vezérelt. Tehát hiába van állandó magas szint a CLK lábon, csak az jel megjelenésének felfutó élére billen. Viszont a bemeneteken nincs prellgátlás. Tehát ha "bizonytalan jelforrásról érkezik a logikai jel, (pld. nyomógomb) akkor abból lehet hibás működés. Mert vagy magas a szint mikor a programvégrehajtása oda ér, vagy épp nem. És ez szerint lesz kiértékelve a dolog. Tehát ha a CLK elé egy időzítőt teszel, aminek kimenete pld. csak 20ms után lesz magas szintű, akkor egy tranziens nem tudja léptetni a számlálót, csak ha annak magas szintjének ideje hosszabb mint 20ms.
Kikötöttem a MCRL lábról mindent.Működött a program, csak annyi probléma van vele, hogy ha megnyomom elindul az egyik relé, második nyomásra, viszont leáll, de indul is a másik relé. A "compare"-nál levettem 22 és 45-ről 15-15re, hogy ne várjon annyi időt.Ez okozhatja?
A bemenetnél a shot után tettem egy időzítőt 2000ms-re állítva és úgy jó lett. vagy számlálót tegyek ide is inkább?Miért nem javasolt az időzítő? Majd szeretném tovább bővíteni, mert le kell, hogy kapcsoljon egy idő után a kimenet, 30-150mp között valahol. Gondolom ezt is csinálhatom számlálóval.
Próbáld meg ezt. Ennek mennie kell...
Ezekkel a számlálókkal, hogyan lehet időzíteni?
Ha megtennédezt, hogy a mellékelt program egyik kimenetéhez kacsolnád, úgy hogy a szimulációban is lássam, az nagy segítség lenne számomra. Az " és, vagy " kapukat rakhatom bátran? azokkal nem lesz gond? És az a kapcsolás amit mellékeltem, fog működni, abban a formában? Mert a szimulátorban jól működött, de a pic-be írva nem csinált semmit.
Néhány észrevétel: Az MCLR az legyen belső (PIC beállítás) és vedd le a lábról, (a nyák-on) amit odakötöttél, az sokkal stabílabb. A 4Mhz esetén a XT-t kell bejelölni a PIC konfigban.
Az időzítések helyett használj a mellékelt módon számlálókkal. Ebből akár 20-30db-ot is használhatsz. Az ütem az célszerűen 100ms. Így nem zavarják egymást. Az áramkört és a programot kisebb részletekben próbáld ki, akár egy bemenet és egy kimenet kapcsolatát. Aztán ha ez megy, akkor variáld időzítéssel, aztán többel...stb. Lehet rajzolni több oldalon és zászlóval összekötni. (Én is ilyenből ollóztam ki) Az one-shot egymást nem indítja biztonságosan, ha többet kötsz egymás után. Kivéve ha a második invertált. ("gombócos")Ebben az esetben bekapcsoláskor ezek adnak impulzust. Ha zavaró, akkor meg kell kapuzni és egy késleltetéssel szabaddá tenni 1-2 tized után...stb... A bemenetet fogadó pontnak is invertáltnak kell lennie a Te esetedben, mert ez az aktív állapot, ha az opto bekapcsol...Egyenlőre ennyi...Hajrá!!! A hozzászólás módosítva: Júl 14, 2016
Ha a gnd-ket leveszem, akkor még jó is lehet?
Megpróbálom lecsökkenteni az időzítőket.
Ha a gnd-ket leveszem, akkor még jó is lehet?
Megpróbálom lecsökkenteni az időzítőket.
- De ha így fordítod le, akkor az nem jó. A SIM meg tudja erőszakolni bármely logikai szintet, de a fordításnál hozzá kötődik a bement a GND szinthez.
- Nem tudom mi a szabály, de ha végig olvasod a topikot, akkor láthatod, hogy bajok lehetnek belőle.
Sajnos nem nagyon tudom, hogy mit lehet és mit nem. A gnd-re csak a próbálgatás miatt kötöttem, mert így nyomógombként viselkedett. Az időzítőkkel kapcsolatban, van valami szabály?
|
Bejelentkezés
Hirdetés |





