Fórum témák
» Több friss téma |
A megfelelő PIC alap modult aktiválod a P4 -ben UART Base itt beállítod a sebességet adatformát. Legyen ez az adó oldal... Az UART DATA modulba bejelölöd a küldeni kivánt változókat Byte-okat, ha 16 bites akkor minkét "részét". A modult bejelölöd adásra. Cálszerűaz automata sorszámozát felülírni saját változó nevekkel. Próbára pl 4db bytot állíts be. Indítási feltétel lehet pl nyomógomb vagy időnkénti pulza, stb... A Vételi olda PIC- ben hasonló módon járj el. BASE modul sebesség adatforma stb... azonos értékekre állítva. Az Uart DATA modul vételre állítva. Vételi változóként célszerű adatforrás modult 4db-ot beállítani és vételre jelölni. ( ez ua.mint amit ADC-nek is használunk, csak nevezzük el PL ADAT1...stb)) ezeket célszerűen LCD-re kiiratni. Összedrótoz bekapcsol és sikerül... ennyi. Az RX TX vonalakat természetesen átlózva kell használni. Valójában ez rövid vonalon 1-2m megy MAX232 nélkül is. Célszerű is így kipróbálni, nehogy egyéb áramköri hiba miatt legyen elsőre sikertelen a dolog. Fontos, hogy az adott és a vételrebeállított byte-ok száma azonos legyen.
Sajnos nekem sehogyan sem akar működni.
Tudnál küldeni egy mintaprogramot. Nagyon megköszönném. ![]()
Hello! Használd a fejlécben a "Válasz" gombot. Mert így nem lehet tudni kinek mit írtál..
Tisztel dcsabi!
Köszönöm a válaszodat. Megpróbáltam amit leírtál, de nekem sehogyan sem akar működni. Ha lehetséges szeretnék kérni egy mintaprogramot hogy lássam hogy működik. Előre is köszönöm! Feco ![]()
Többször volt szó már a Topicban erről a kommunikációról. A Quartz is szükséges "kellék" a PIC-hez. próbáld ki ezt.
Sziasztok!
Olyat csinált e már itt valaki, hogy 1 pic küld uarton adatot 3 másiknak? Szüksége, lenne egy olyan megoldásra, hogy egy 16f877 küld adatot 3 db 16f876- nak uarton. Ha 1 picnek küldök megy szépen a dolog. Két picnek úgy próbáltam, hogy 2 data modult és 2 base modult alkalmaztam, de akkor egyik sem működött. Kellene úgy működnie, vagy felejtős az ötletem? Előre is köszönöm a segítséget! Peti
Csinálj az adó picre 3 kiválasztó kimenetet ami külön külön kapcsolja a vevő piceket (chip select)
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.
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.
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
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 ![]()
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.
Nekem az eeprom használat volt az első gondolatom...
Nekem is ez jutott eszembe! Köszönöm a választ!
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?
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
Talán Így megoldható a dolog.
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.
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
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
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.
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 ??)
Ü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.
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
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?
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
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ó.
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
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 .
|
Bejelentkezés
Hirdetés |