Fórum témák
» Több friss téma |
Fórum
Itt csak két monoflop van. Az egyik az etalon, a másik a DAT. De így is ugyanolyan az időzítés, mintha tele lenne mono flop-okkal. Nem értem.
Akkor próbálkozz nyugodtan , én soha nem használok monoflopot mindent egy időzítőből (a lehető legkisebb ) kapuzok ki , de még így is pontatlan a dolog mert amíg időzít nem csinál semmit , majd csinál valamit (idő) és újra időzít ... A te esetedben ? a program ráfut az egyik monoflopra - ---- majd a másikra ---- majd a harmadikra ---- és háromszor nem csinál semmit csak az idő telik-múlik
Áh, azért ennyit nem. Ha órát csinálunk, akkor esetleg egy fél óra alatt talán néhány másodperc. De itt eleve másodpercekről van szó.
De akár még többet is ! Tudod mit szívtam az időzítésekkel a parsicban ?
A hozzászólás módosítva: Jún 27, 2016
De 3 másodpercet nem téved.
de mert a parsic nop utasításokkal csinálja az időzítést és amíg valahol időzít megáll a program , a monoflopok idejét is számlálókkal csináld közelebb leszel a valósághoz
A hozzászólás módosítva: Jún 27, 2016
Nem. Ekkora eltérést nem okoz. Kb. 4000-es értéknél egyezik a két monoflop ideje... De nem csak mono floppal, hanem akár timer-el is ugyan ez a helyzet. Ha kiveszem a sok időzítést, akkor sem változik.
A hozzászólás módosítva: Jún 27, 2016
Túl sok az időzítés a programban, próbálj meg egy időzítőt használni és számlálókkal "kikapuzni" mindenhol a megfelelő időket .
Egy számomra érthetetlen jelenség történik. Egy mono flop értékét adom meg a programban, de a helyzet az, hogy egyáltalán nem az értéknek megfelelő hosszúságú ms érték megy ki a kimenetre. (Állítsd az értéket a fel-le segtségével 1000-re. A start segítségével indítható. )
Mellékletben a program. A program a szimuláció alkalmával tökéletesen működik. Lefordítva a programot és PIC-be töltve tapasztalom ezt a problémát... És nem értem, hogy miért. Netán volna ötleted? A hozzászólás módosítva: Jún 27, 2016
Köszönöm mindkettőtöknek a választ! Ki fogom próbálni. A timert azért állítottam ennyire, mert sok adatot küldött, és nem volt átlátható.
Szia!
Itt egy egyszerű megoldás. Csomag: ADC0, "soremelés/kocsi-vissza", ADC1, "soremelés/kocsi-vissza" A soremelés és kocsi vissza, sztenderd nyomtató parancsok (0D,0A). Ja és a timer sokkal kevesebb is lehet. Üdv: Zsolt A hozzászólás módosítva: Jún 15, 2016
A PC-s program csak egy megjelenítõ program. Bármit meg tud jeleníteni ami a PIC-töl érkezik! Ezeket a vezérlõ karaktereket el tudnád magyarázni, hogyan tudom megoldani?
Ha ennek mindenképpen a PIC felől várod a megoldását, akkor próbáld egy kicsit megformázni a "távíratot". A PC-s programodat nem ismerem, de lehetséges, hogy vezérlő karaktereket (13-- enter) teszel az adatok közé, vagy szünet "kódot" lásd ASCII tábla...Lehet a számokat ASCII kódban is küldeni...stb... Mit is vár valójában a PC-s progi?
A hozzászólás módosítva: Jún 14, 2016
Üdv!
Szeretnék kérni egy kis segítséget adat küldésben. Csinálok egy eszközt, ami 3 analóg jel alapján kapcsolgat 3 relét, eddig nincs is problémám. Elég egyszerű az áramkör, és a program is. Beállításhoz kellene látnom az analóg értékeket. Mivel nagyon kicsi helyre kell bezsúfolnom arra gondoltam elküldöm PC fele az adatot és ott megjelenítem docklightal. Ez működik is szépen, de itt jön a kérdés, Hogyan lehet elválasztani egymástól az adatokat? Így egymás után rakja be egy ablakba, és nem túl átlátható. Valahogy meg lehet oldani, hogy új sorba tegyen minden küldött adat csomagot? Előre is köszönöm a segítséget! UI: Fel rakom a progit, amivel próbálkozok az adatküldéssel. 2 db analóg jelet szeretnék továbbítani.
Egy eepromba egy számláló értékét mentjük, minden számlálónak külön eeprom box kell
( aktuális még a dolog ??)
Feladóm!
Csináltam egy kijelzőt a be állatot számot kel kijeleznie eddig minden oké. De mikor EPROM ba szeretném tárolni a beállítót értéket akkor behülyül nem birok rájönni mitől. Ha valakinek van valami ötlete azt megköszönném.
A zoli3 már 14 adatot kezel (az MX ek 0ás címén mindíg az aktuális adat van ezért az nem játszik) 3 multiplexerrel már 21 adat lekzelhető
A hozzászólás módosítva: Feb 24, 2016
Ha nincs szükség az eepromra (nem kell kikapcsolás után is megőrizni az adatot ) akkor így is megoldható . De innen már nem nagy dolog az eeprom hozzáadása a dologhoz
A hozzászólás módosítva: Feb 24, 2016
Pont így csináltam meg!
![]() Annyi a változás, hogy legalább 10-15 féle időt kellene letárolni, és azt egy nyomógomb megnyomásával lehet előhozni a kijelzőre sorban. Ez már elég bonyolult feladat.
Nos, kiegészítem. Ha jól értem az órát megoldod, egy gombnyomáskor le akapod tárolni az éppen aktuális időt ami éppen a fölső sorban megy.
A teljes dátumot akarod a pontos idővel? Gomdolom igen. ehhez nem ártana RTC-t használnod. nemrég tettem fel kiolvasás példát. De PIC-ben is lehet járatni, csak nem lesz pontos!. Adat letárolás. Egy adatra mondom el. Most éppen nem Parsic-os gép van nálam. MX modul használata a megoldás. Egy One-shot modul indít egy egybementű BV modult bit>byte. ez indítja az MX váltást. Mx modul két bemenetű legyen. 1-s bementre írd oda Pl a PERC változót a 0 bement és a kimenet összekötve és elnevezve pl: PERC_EE névre. erre a célra előtte hozz létre egy ZV modult és nevezd el pl: PERC_EE. nem kell a bementére semmi csak egy Db "drót". a reset bemenet egy másik nyomógombhoz köthető. Ha lenyomod a gombot egy rs modult set-elj ez a feltétele pl a kijelzésnek, vagy az az aktuális adat mindig is ott lehet. Az One-shot kaszkádba indítson egy másikat, ami az EEprom irást indítja a PERC_EE változóra. A kijelzés (LCD) adata a második sorba a PERC_EE értéke. 6db adatra 6db MX modul kell, amit egyszerre ír át az előbb említett procedura... stb
Igen ám, letárolni gondolom letárolja, ha a PRG bemenetére érkezik egy impulzus, (A PRG-ben beállított alkotóelem értékének tárolása) de hogyan lehet ezt rögtön meg is jeleníteni?
Nekem is ez jutott eszembe! Köszönöm a választ!
Nekem az eeprom használat volt az első gondolatom...
Elkészítettem az órát a javaslatod alapján. Sokkal egyszerűbb, valóban. De az alap problémát nem sikerült megoldani. A PRG-re nem igazán reagál.
Ez az óra logika? Legalább is úgy vélem.
Idézet: „A számláló(k) kapja az órajelet, számol. Érkezik az (RA.0) bemenetre egy nyomógombtól egy jel, s ennek hatására a számláló(k) pillanatnyi értékét ki kell íratni egy LCD-re. felső sor folyamatos idő, alsó sor a gombnyomás pillanatában járó idő. No és természetesen a tár resetelése is fontos.” Igazából erre keresem a megoldást
Használj Limiter modult. A ZV számlálót nevezd át Pl: PERC. a Limiter modul bemenete is PERC, a kimenete is PERC. Nem kell drótozni!!! .ennyi. A Limiter határoló adat 0 és 59. az alsó és fölső kivezetésnek is "huzZ" lábat, itt nem kell felhasználni, csak hibajelzés lenne.
Ha használsz MX modult az említett PERC nevű számláló értékét át tudod billenteni vele egy tetszóleges értékre, 0-ra is, vagy reset bemenetet használva. Ez élethűen egy szimulációban is, de legjobb élőben PIC-ben. Tettem fel hasinló példát, órára az elején, menű-re kb egy éve... A hozzászólás módosítva: Feb 22, 2016
Használj RS485-t az adatok első byte-ja a cím. HA ez passzol, akkor lesz felhasználva a többi adat. Tehát minden PIC vesz minden adatot.
Segítséget szeretnék kérni.
Hogyan lehet egy ZV1 számláló értékét letárolni, illetve kijelezni a következő képpen: A számláló(k) kapja az órajelet, számol. Érkezik az (RA.0) bemenetre egy nyomógombtól egy jel, s ennek hatására a számláló(k) pillanatnyi értékét ki kell íratni egy LCD-re. felső sor folyamatos idő, alsó sor a gombnyomás pillanatában járó idő. No és természetesen a tár resetelése is fontos. A számlálókból óra:perc van kialakítva (ZV1;ZV2) Dátum is kell, de azt megoldom ugyanilyen számlálókkal év;hónap;nap (ZV3;ZV4;ZV5) A számlálók, az óra logika megy, csak a letárolás, illetve ennek kijelzése okoz problémát. Köszönöm.
Csinálj az adó picre 3 kiválasztó kimenetet ami külön külön kapcsolja a vevő piceket (chip select)
|
Bejelentkezés
Hirdetés |




