Fórum témák
» Több friss téma |
Fórum
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
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.
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
Hello! Használd a fejlécben a "Válasz" gombot. Mert így nem lehet tudni kinek mit írtál..
Sajnos nekem sehogyan sem akar működni.
Tudnál küldeni egy mintaprogramot. Nagyon megköszönném.
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.
Sziasztok!
Feco vagyok és szeretnék tanácsot kérni tőletek. 2 PIC- et szeretnék összekötni UART-on. és az egyikkel szeretném a másikat állítgatni. Az egyik egy PIC18F452, a másik PIC16F873A. A PIC16F873A val szeretném állítgatni a másik PIC-et. Min a két PIC MAX232N keresztül kommunikál, hogy lehet ezt megvalósítani PARSIC4-ben. Előre is köszönöm a segítséget.
Most nem mélyedtem bele annyira, de elsőre ami feltünt: az MX modulokat is állítsd át 16 bitesre. Ami még lehetséges, egy és-kaput kihagytál mindkét helyről...
Szia!
Bocs hogy még mindig zargatlak... Lehet hogy megint butaságot kérdezek,de egyszerre képes működni 2 db EE? Csak az egyik értéke íródik vissza. Ez mitől lehet? Légyszi nézd át az alkotásom...
Köszönöm amit küldtél. Beégettem. A pergő számláló értékét a kikapcsolás pillanatkori értékével menti és bekapcsoláskor az vissza is írja. Átnézem és megpróbálom áttenni az enyémbe. Remélem sikerül..... Még egyszer köszi.
Próbáld meg ezt, nem tudtam tesztelni konkrét megoldásban. A ZV1 aktuális értékét fogja letárolni. Most csak 18F8722-s panelom van készen...ez meg P4-en megy.
A hozzászólás módosítva: Dec 27, 2015
Esetleg az EE beállításaival lehet baj? checksum-nál pipa ; ZV2,ZV2_HI a jobb oldalon.
Jó ez így?
Most olvastam,amit az adatforrással kapcsolatba írtál. De a példádból nem tudtam kihámozni melyik is az az ADATX. Esetleg valami konkrét példát kérhetnék rá?
ZV4-et kitöröltem teljesen ; 3 db OS-t tettem egymás után ; invertáltam EE bemenetét...
Így sem akarja..... Tulajdonképpen nem egy folyamatosan változó értéket kell eltárolni. A cél az lenne,hogy a nyomógombokkal beállított alsó és felső értéket kellene eltárolni és bekapcsoláskor a számlálóba visszaíratni. Ha már megvan a két érték,akkor nem lenne változtatva,tehát mindig ugyanazt kellene átírni és vissza. Persze ha valamiért lenne változtatva az érték,akkor már a változtatott lenne mentve. Hogyan lehetne ellenőrizni,hogy a beírás végbe megy-e? hogy lehessen tudni,hogy a beírással van baj,vagy a visszaírással A hozzászólás módosítva: Dec 27, 2015
Ha valójában az a cél, hogy egy folyamtosan változó értéket tároljunk le akkor a táp esés figyelése a megoldás. Mielőtt átírod az adatot az MX-be előtte nyílván nem lehet kezdeményezni az írást, mert nincs is ott még az aktuális adat. Az írást lehet az OS modul lánc egyel való megtoldásával is kezdeményezni. Most nincs készen ilyen HW-m nem tudok próbát tenni. Próbálgasd Te...hiszen néhány perc alatt megvan bármi.
ZV4 csinálja a késleltetést ZV2 beírása és az epromba írás előtt.Vagy ZV2 beírása után nem kell késleltetés az eprom írás előtt? Vagy esetleg ZV2-be lehetne folyamatosan írni az értéket és a fesz esés csak az epromba írást indítaná?
A tápokban 470µF-os kondik vannak. Az analóg bemeneten 12V-nál 4,9V van. A karakterisztikát már régebben felvettem. 4,5V-nál 910 ; 4V-nál 808. Ezért tettem az analóg bemenet számlálóját 900-ra. Így ahogy csökken a fesz,már ír is.
Egy előzőleg feltett változatban negatív lefutó élre indult volna az írás. Az helyes. Most meg pozitív jelre indítanád(?) -javítsd ki. Ha mégsem menne, akkor a ZV4 számlálást vedd ki a rendszerből, nem kell ennyire megbonyolítani. A feszültségosztódon megméred mekkora az analóg bemenetre jutó feszültség. Esetleg ezt ki is írathatod próbaképpen. Ennek a 20-25%-os esésekor induljon azonnal az írási impulzus. Esetleg a tápba betehetsz 1-2µF tantált is. Az analóg bemeneti osztód földre menő ellenállásával párhuzamosan egy 100pF-t.
Ez azért kell, hogy hirtelen ingadozások ne indítsák az írást. Továbbá el tudsz játszani vele, hogy állíthatóvá teszed, a küszöb értéket is. Ennek működnie kell ez annyira egyszerű. Továbbá a ZV2-t helyettesítheted adatforrással is PL: ADATX, mint ahogy én a példában. Az egy működő projekt része... A hozzászólás módosítva: Dec 27, 2015
Nem tudom hogy az hiba-e de nálam az eeprom bemenete mindig negálva van (s4.1 et próbáld negálni) Ez csak tipp már nagyon régen nem használtam parsicot
A hozzászólás módosítva: Dec 27, 2015
Szia!
Tovább kérném a segítséged.... Az írás és visszaírás még mindig nem akar menni. Csináltam az alábbi kis teszt progit. Kiírattam ZV2-t is. Kikapcsoláskor szépen beírja az értéket. De valahogy nem mentődik el. Vagy csak nem tud kiíródni. Ezt nem tudom. Lehet hogy az a baj,hogy kikapcsoláskor ahogy esik össze a tápfesz,kiírásra még van energia,de eprom írásra már nincs? A rendszert amúgy úgy oldottam meg,hogy 12V-ról megy a rendszer,7805-el 5 V-ot csinálok. Jó nagy pufferkondik benn mind a 12,mind az 5 voltnál. Csináltam egy feszültségosztót 12-ből 5 V-ra. Ahogy esik össze a 12V-os rész,már indul a beírás. ZV2 beírása után kb. 500ms múlva sötétül el a kijelző. Ez idő elég a mentésre szerinted? A mentés indítását jól oldottam meg?
Szia!
Szerintem hiányzik az EEprom írás feltétele. A ZV2 modul CLK bemenetére kötöd az EEpromot, hogy annak a lefutó éle írja. Ott valójában nincs is jel... Bármilyen jellel indítható az eeprom írás, nemcsak a megszokott módon. Pld, -melléklet. Valójában ott egy byte egy bitje van letárolva és visszaolvasva. Az MX7732-ből másolja az 1-t, vagy 0-t ez alapján akár a Te feladatod is megoldódhat(?) Az indítási késleltetés is lehetne számláló alapú... A hozzászólás módosítva: Dec 25, 2015
Szia!
Köszi a tanácsokat. A leírtakat követvén úgy néz ki mag javult a kijelző. Már csak az epromba mentéssel és visszaírással van gondom. Lehet a számláló után tett limiter akadályozza a visszaírást? Amúgy 4 Mhz-es rezonátort használok.
Az időzítéseket javaslom, hogy a már régebben említett módon kellene csinálni. Pl 100ms timer (csak 1db !!!) ezeket leosztani a szükséges feladatra. Melléklet Példa... Az analóg bemenet konverziója időigényes, a sok timer a megszakításokkal nem biztos, hogy az 50ms frissítésbe belefér. Mi az amire 50 ms-onként kiváncsi vagy? 100ms-ot használok 1X !!!. a 16F877-et teleírtam, legalább 50db kijelzésképet kezeltem, -4MHZ-n mindent kijelzett. A késleltetések leosztottak ZV modullal, van amelyik állítható. lásd pl...Ja és 40 Ft ára Quartz is elkelne. Régebben egy 3-4 timert használtam 628A-ban, össze vissza ment, tettem bele uartzot egyből megjavult. A mellékletben a az ÜTEM1 zászló 100ms másik oldalról áthozva, a kiollózott részlet egy 14 oldalas progiból való. Ennél jóval több hasonló időzítés van benne...
A hozzászólás módosítva: Dec 24, 2015
Sziasztok!
Ismét hozzátok fordulnék.... Az alábbi programban az LCD modul a szimulációban szépen működik. Az mplab a progit szépen fordítja,de beégetve a kijelző mégsem működik. Mi lehet a baj? Más kisebb programok kijelzése ok. Már próbálkoztam más időzítésekkel is,de úgy se megy. Vagy túl sok a modul? Az a baja? Válaszotokat előre is köszönöm.
Szerintem a "saját válaszod" lesz a megoldás. Én sem használtam még, mert a Parsic alatt nem lehet használni ezt a funkciót. Hacsak nem írod meg INC alá ASM részletként. Olyan nagy a választék, nyílván találsz másik PIC-et a feladatra. P4-t használsz?. Én megoldottam: Van egy 18F8722-s panelom, rá van tervezve az ég világon szinte minden. Azt ültetek be ami az adott feladathoz éppen kell. (Ja és pillanat forrasztóval ültetem be a TQFP80-t, az elején 1-2 db elment kukába, de most 100% a "kihozatal")l A nyákot is úgy csináltatom. Rájöttem, a sikert nem a 4-500 Ft megtakarítása jelenti, mindinkább a sikeres, minőségi program...Volt anno nekem is 16C54-em jó néhány db, (ingyen) de jó helyen van az ott ahol van...
A hozzászólás módosítva: Dec 6, 2015
Sziasztok! Bár elég primitívnek tűnhet a kérdés, de mert még ezt a funkciót nem használtam felteszem:
-PIC16F628A-nál PARSIC-ban, ha Schmitt-Triggert akarok használni komparátor bemenetként, azt csak az RA.3-RA.4 lábon tehetem meg (CMP1, CMP2)? Adott analóg feszültségszintre kellene ki/be kapcsolni. (Tudom vegyek ki a fiókból egy 20 Ft-os műveleti erősítőt, de én PIC-el szeretném, mert így némi vezérlési logika is beleférne.) Persze 876-al (5db AD bemenet) megoldható, de 628-ból van pár db.
Egy-két oldallal ezelőtt felmerült: a P4-ben lehet használni az I2C-vel több szolgát. Jelenleg kettővel próbáltam, de működik. Előbb megoldottam, mint ezt ide leírtam. ( a szerencsés szolgák: DS1307 és DAC7571)
Köszönöm tanácsaid,ezek szellemében módosítom a programom.
Várom " okosságaid ",kíváncsi vagyok rájuk...
A Limiter modul az megállítja a fölső és alsó határon is bármit. Ha az alsó érték nulla a limiterben, akkor helyette "1"-t kell használni. Ha mindenképpen "0" kell, akkor ki kell vonni belőle "1"-t, így nem fordul át. A frissítésre 50, 100ms-t javaslok, ebbe minden belefér... Van olyan progim, amiben kb 50 limitert használok. A Limiter alsó és felső értékét helyettesíthetjük változóval is... A PWM-t lehet módosítani a mellékelt ASM részlettel, INC modulba. Nekem is volt vele gondom, amikor PWM-ből csináltam 0-5V-t, az optocsatoló nem szerette a túl nagy frekit. Így gyakorlatilag 20MHz-n ugyanaz mintha 4MHz-t használnál. Ha lesz egy kis szabadidőm, majd teszek fel egy két "okosságot" , amivel néhány dolgot könnyedén meg lehet oldani. Az elmúlt időben nagyon sok PIC-es progit kellett írnom, ezek szinte kivétel nélkül Parsic4-el készültek.
A hozzászólás módosítva: Dec 1, 2015
A " PWM akkor is fűt,amikor nem kellene",ez alatt azt értettem,hogy mikor szimulációban a mért érték jelentősen meghaladja a beállítottat,ekkor a visszaszámlálás nem áll meg a beállított legalacsonyabb értéken,hanem újraindul a számlálás fentről. Vagyis mikor már a beállított felett van a hőmérséklet,akkor is ráfűt a rendszer az átfordulás miatt.
Remélem most már sikerült érthetően leírjam. Amúgy ha csak kicsit haladja meg a mért a beállítottat,akkor szépen áll az alsó értéken. Az átfordulás szerintem Yi miatt van,mert a képletből adódóan ennek értéke halmozódni tud a végtelenségig. Ennek kordában tartására van Yi min;max,illetve Y min;max. Csak az alsó értéken nem marad meg,hanem átfordul. A hozzászólás módosítva: Dec 1, 2015
|
Bejelentkezés
Hirdetés |







