Fórum témák
» Több friss téma |
Nem is szeretném ha más csinálná meg,mert szeretném metanulni.
Hetfon neki is látok majd.
Helló.
Eljutottam addig, hogy sikerült összeraknom egy programot,olyat amilyet szerettem volna. Később meg is mutatom,csak lenne még pár kerdésem. Hogy tudom megjelölni,hogy melyik ki és bemeneteket használja a pic-en? 16f628-at szeretnék használni. parsic programot használtam. A hozzászólás módosítva: Júl 13, 2016
Hello! Nevet adsz a jelnek. A modul kimenetére jobb egérrel kattintva megváltoztathatod a pld. S1.0 nevet RB.0-ra ekkor a Bporta 0. bitje lesz a kimenet. De ha megnézed a Help-et, itt a "Connection info"-nál, akkor szépen le van írva.
Megcsináltam a programot, a szimulátorral szepen műkodik is.
Van egy riasztóm amibe beletettem es azokra a ki és bemenetekre címeztem a proframban a modul kimenetet. Bemenetet Pl.: bemenet RA.0 ,kimenet RB.0 .Majd rámentem hogy bild es csinált egy Hex, egy Asm és még pár fájlt. De nem mukodik valamiért. Van valakinek ötlete,hohy mit kellene tenni.?
Ha felteszed a PIC filet, a szakértő kollégák várhatóan megmondják. De ellenőrizni kell, hogy jó proci típust választottál-e, megfelelő-e az órajel beállítása, és a hardver. Azért mert a Parsic-ban "ír" valaki programot, attól a PIC-et még ismerni kell.
Helló.
Feltöltöttem a programot,mentségemre kicsit zsúfolt lett,de ezvolt az első próbálkozásom. A másik kép az a riasztó amibe beletettem próbaképp. Elvileg ha jol csináltam akkor a ki és bemeneteket hozzácímeztem.
- Szerintem ennyi időzítőt nem lehet használni.
- Hozzá rendelted a portát, de miért kötötted a GND-re a bemeneteket?
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?
- 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.
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.
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
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.
Próbáld meg ezt. Ennek mennie kell...
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.
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.
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
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.
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! 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)”
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.
Igen, megvásároltam, ettől még nem fejlesztik...
Sajnos ezt nem tudtam , pedig terveztem a vásárlást ...
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
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?
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
É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.
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.
|
Bejelentkezés
Hirdetés |