Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   127 / 179
(#) sniperx hozzászólása Nov 27, 2009
1: Ez a kijelzés csak ugrál a szimulációban. (az utolsó analógról amikor az elejére ugrik, akkor az utolsó érték megjelenik egy pillanatra az első helyen is, majd felülírja a tényleges első adattal)
Az ütemadókat állítgatom mindenfelé, de változatlan.

2: Ezzel az UART átvitellel milyen messzire lehet biztonságosan továbbítani adatot?
Ha pl 10-20m távolságra kell elküldenem adatot akkor ezt hogy lehet megtenni?

3: Mi a teendő, ha nem csak két pic-et szeretnék összekapcsolni, hanem esetleg 3-at?

4: Különböző quartz-al dolgozó pic-eknél mi a helyzet a szinkronnal? (4MHz 628-as és 20MHz-es 877 összekapcsolása)

Bocs a sok kérdésért, de próbálgatom ezeknek a dolgoknak a határait és ezeket inkább tapasztaltaktól kérdezném, mint saját kínlódás árán kipróbálgatni.
(#) sniperx válasza Peti.Janka hozzászólására (») Nov 27, 2009
Gondolom valami analóg multiplexer lehetett.
Ezek szerint sima bináris kóddal vezérelhető, ami nem lenne hátrány.

dcsabi:
Addig eljutottam, hogy elvileg kiadja UART-on a multiplexer kimenetén levő értéket, valamint a multiplexert léptető jelet.
A fogadó oldalon ezek szerint elég megadni ezt a két értéket egy demultiplexer bemeneteire, és már vissza is kaptam leválogatva az adatokat.
Valahogy így gondoltam, mint itt látszik a mellékletben. (uart fogadó csak a beállítások miatt van jelen)
Az adó és a vevő rész is egy rajzon van, de ez ne zavarjon senkit.
Azzal van még bajom, hogy a kijelzés ugrál valamiért a szimulációban, tehát másik analóg jel is megjelenik egy pillanatra a kijelzőn. Ezt hogy lehet kiküszöbölni?
Esetleg csak a szimuláció csinálja?

uartdat.PIC
    
(#) dcsabi hozzászólása Nov 27, 2009
uart-os válaszok:
Mivel nem "parsic"-os gép mellet vagyok...ezért látatlanból,...
A szinkronizálás az órajel pontossága, és a másik szál drót a test...tehát mindig használjunk quarzot.
Ha a másik szálat is bekötjük Rx-->Tx, akkor a nyugtázás is egy szinkronizálási lehetőség.
Én simán 15-20 byte-ot át szoktam küldeni, test+Tx (adó) test+Rx (vevő).
Ha több adatot küldözgetünk érdemes magasabb órajelet választani mindkét PIC-nek egyformát! (20Mhz). Ugyan a Parsic a 4Mhz-hez tervezi a sebességet, de ennek csak akkor van jelentősége, ha kifelé, Pl Pc-vel kommunikálnánk.
sniperx-nek, nem tudom most a filét megnézni, de a fogadott byte-okat nevezd el valaminek Pl ADAT1, ADAT2...stb ezeket vagy adatforrásként szimbolizáld, mint az ADC-t vagy egy byte-os összeadó modul egyik bemenetét nevezd el így a másik bemenet meg 0 legyen.
Az Uart vevő modul-ban vételre bekell jelölni az ADAT1,ADAT2...változókat az LCD-re kiíráshoz meg helyesen kell megadni a sorok és cellák értékét...
(#) Peti.Janka válasza sniperx hozzászólására (») Nov 27, 2009
Hali! Én az egyik nap találtam egy olyan ic-t ami egy erősítőben volt csatornaválasztó, 4 bemenete volt és 2 lábbal lehetett váltogatni, hogy mejik bemenet menjen tovább. és nem kelett neki semmi komunikáció, ha egyik láb sem volt magasra húzva akkor az 1es bemene, ha 1 láb akkor a 2es, ha a másik láb akkor a 3-as, ha mindkét láb akkor a 4es. Ezzel szerintem egyszerüen meg tudnád te is olnani a dolgot. ha érdekel megnézem majd pontosan z ic tipusát. Ezzel a megoldással f877 tud 32 analóg jelet mérni.
(#) sniperx hozzászólása Nov 27, 2009
Hát, ahogy nézem ezt egy programon belül nem fogom megcsinálni. Igazából jó lett volna látni, hogy átmegy-e a cucc.
(#) sniperx hozzászólása Nov 27, 2009
Megtaláltam közben, hogyan is kell elküldeni az UART-on keresztül analóg értékeket, de a másik oldallal bajban vagyok. Egyszerűen nem tudom, hogy lehetne a kijelzőre varázsolni az átvitt értékeket a 3. sorba. Valami zöldség jelenik meg ott, tiszta káosz.

uartdat.PIC
    
(#) sniperx válasza dcsabi hozzászólására (») Nov 27, 2009
Az alábbi próbálkozásnál hol a hiba?
Addig jó, hogy leméri az értékeket egyesével. (ezt látom, mert sikerült kiíratni lcd-re sorban az értékeket.
Az UART téma viszont nem jó valamiért.

uartdat.PIC
    
(#) sniperx válasza kaqkk hozzászólására (») Nov 27, 2009
Köszi mindkettőtöknek, így már értem a lényegét a kiíratásnak.
Persze, először arra kellene valamit összehozni, hogy egy 877 mérjen le 2 bemenetet, majd ezt küldje át a 628-nak. A szinkronizálást hogy lehet megoldani, ha csak egy szálat használok?
Esetleg két 877, hogy itt is legyen analóg mérésre lehetőség?
(#) kaqkk válasza kkrisz75 hozzászólására (») Nov 27, 2009
Ha a szorzásokat osztásokat elvégzed :
marad egy szám a 27 amivel egy egyszerű osztás
megadja a végeredményt !

Ha a bejövő adatot 27- el osztod (egy művelet )
kész a teljes művelet !
(#) kkrisz75 válasza dcsabi hozzászólására (») Nov 26, 2009
Ez csak elvi szinten, egy sebesség mérő lenne.

A kerék kerülete (188), órába való váltás (36), differenciálmű és spirál kihajtás közti áttétel (179861), alapján 10ms alatt beérkező jeleket(26-5303) számolja.

Így 1-200 között km/h ban mutatná az értéket.

Ennél jobban kerekíteni nem lehet, mert így is éppen benne van az 5%os eltérésben.

Kerület 165/70 R13 esetén 1.884m
Óra váltás: 3600s
Áttétel: 1.7986111

Szóval a sok nulla miatt nem tudok 16 bitben számolni, pláne, hogy a tizedes számokat kerekíti.

Ha jól értem, csak 32 bites pic használható, de azt a Parsic nem támogatja.
(#) Ferkógyerek hozzászólása Nov 26, 2009
Sziasztok!

Egy olyan problémám lenne hogy UARTon csak 2 byte adatot tudok átvinni. Ha már hármat szeretnék akkor nem csinál semmit. Az adó egy 16F628A és csak 3 szálálót tartalmaz valamint az UART modult. Vevő oldalon pedig egy 16F877A ami egy LCD-re írja ki a 3 byte decimális értékét. Próbáltam az időzítő értékét atírni 200-ról 400ms-ra de semmi változás. Mi lehet a gond?
(#) dcsabi válasza sniperx hozzászólására (») Nov 26, 2009
Válasz: szöveg , mellette kiolvasott érték
Esetleg próbáld meg előbb kevesebb bemenettel vagy egy PIC-el.
(#) dcsabi válasza sniperx hozzászólására (») Nov 26, 2009
Az egyik PIC csak passzivan analógot mér és küldi az analóg jelek értékeit uarton folyamatosan a másik pic felé, egy drót elég hozzá, Tx-->Rx ...
A másic pic meg feldolgozza ezeket a byteokat a saját analóg bemenet byte-jaival együtt és kijelzi LCD-re is amit kell...
300 ms az mindenre elég...
Van a topicban hasonló példa főleg az első 20 oldalon...
(#) kaqkk válasza sniperx hozzászólására (») Nov 26, 2009
Én a "hiba" jelzést talán így oldanám meg

NONAME.PIC
    
(#) sniperx válasza dcsabi hozzászólására (») Nov 26, 2009
Akkor marad a több pic.
Igazából az összekapcsolásnak utána kell olvasnom, mert azt még nem ismerem.
A kapcsolásnap kb 15 analóg jelet kellene lekérdezni, és ha valamelyik nem jó, akkor pl kiírni kijelzőre egy hibaüzenetet esetleg a pontos mért értékkel.
Ebben nekem még az is magas, hogy lehet megoldani a kijelzésnél, hogy legyen fix szöveg és mellette egy kiolvasott érték.
(#) dcsabi válasza sniperx hozzászólására (») Nov 26, 2009
Keress rá, 4051 vagy 4053 pdf datasheet (analóg kapcsoló, multiplexer,demultiplexer)...
(#) dcsabi válasza sniperx hozzászólására (») Nov 26, 2009
Pl: 16F8876A,16F877A... 8db analóg bemenet
Ha ez nem elég, akkor két PIC és egymással UART-on kommunikálnak, vagy az előbb említett külső chip-es megoldás van amelyikbem 11-...14 db analóg bemenet is van...de a Parsicra kell egy ASM rutin ami kiolvassa a külső chipet és csak azután tudod ezeket az értékeket használni a PARSIC-al...
Inkább a első megoldást javaslom...
(#) sniperx válasza dcsabi hozzászólására (») Nov 26, 2009
No, az meg mifene...? Ilyennel még nem találkoztam. Ez valami ic?
(#) dcsabi válasza sniperx hozzászólására (») Nov 26, 2009
Esetleg analóg kapcsolókkal tudnád...
(#) sniperx válasza dcsabi hozzászólására (») Nov 26, 2009
Igazából azért érdekes a dolog, mert sok analóg jelet kellene vizsgálni, amihez egy nagyobb pic sem elég.
Melyik a legtöbb analóg jellel elbíró pic, amit a Parsic lekezel? (arra hány jelet lehet rávinni?)
(#) dcsabi válasza sniperx hozzászólására (») Nov 26, 2009
Megoldható, de akkor kivűlről kell kapcsolgatnod 300ms-onként a PIC-ből vezérelve valamit, meg tudatnod kell a PIC-el, hogy éppen melyiket vizsgálod (szinkronizálás)... el lehet vele tökölni, de szerintem (sz..ba vérontás), mig ezt leírtam addig a Parsic-al is megrajzoltam volna 3 bemenetre...
Vannak külön ADC chipek Pl amiket I2c vagy SPI buszon lehet lekérdezni... (tlc2574...stb)
(#) sniperx hozzászólása Nov 26, 2009
A jeleket pl optóval kapcsolnám rá az ADC bemenetre a mérés idejére a pic kimeneteivel.
(#) sniperx hozzászólása Nov 26, 2009
Olyat csinált már valaki Parsiccal (ha egyáltalán kivitelezhető), hogy egy ADC bemenetet használhatok csak és ebből veszek mintát bizonyos időközönként.
Tehát van pl 2-3 analóg jelem, amit egy bemenettel szeretnék vizsgálni. Egy adott értéken belül kell lennie mindnek, tehát közös alappal lenne összehasonlítva. Amennyiben kiesik a tartományból bármelyik adjon egy kimenetet a cucc.
A bemeneteket max 2-300ms-onként le kéne kérdezni.
Ok, hogy több ADC bemenetű piccel megoldható egyszerűen, de a fenti módon kivitelezhető vajon?
(#) dcsabi hozzászólása Nov 26, 2009
bocs, elnéztem a hatjegyű számodat.
Szerintem fogalmazd meg a feladatot újra, többször is ...
Ha jól számoltam a kijelzett érték "0.97" és 199 között lenne...
Válassz esetleg gyakoribb jeladást és más időalapot...esetleg osszál 27-el...stb.
Nem ismerem a konkrét feladatot...
(#) dcsabi válasza kkrisz75 hozzászólására (») Nov 26, 2009
Szerintem szorozd meg simán 4-el. Nem hinném, hogy a sok művelet miatti kerekítés kevesebb hibát vinne a rendszerbe,szemben ha esetleg 32 biten számolnál...
Ha jól értelmezem a végeredmény 98 és 20000 között lenne, mi lesz ez patika mérleg? simán elmegy a pár % hiba...
(#) kkrisz75 hozzászólása Nov 26, 2009
Lenne egy gondom és erre nem tudok megoldást.

Egy programban a bejövő jelek számát meg kell szoroznom 188-al (160-190 közti érték lehet max) amit meg kell szoroznom 36al és azt elosztani 179861al.

Az eredményt kellene ki íratnom LCDre.

A bejövő jelek száma 26 és 5303 közt van.

Ezt sehogy nem lehet 16bitben számolni.

Egyenlőre csak elméleti szinten. Milyen megoldást javasoltok?
(#) sniperx válasza kaqkk hozzászólására (») Nov 26, 2009
Aha, értem már.
Tehát amilyen érték a CALL bemenetére kerül azt a bankot hívja meg a táblázatban. Ekkor a bank tartalma kikerül bináris értékként a kimenetre.
Ok, játszottam vele és már megy.
Köszi!
(#) kaqkk válasza sniperx hozzászólására (») Nov 26, 2009
Nézd meg ezt a filét
az volt a baj hogy sokkal nagyobb adat került
a bv 2 re mint amit fel tud dolgozni

lin.PIC
    
(#) baloghzoli1 válasza sniperx hozzászólására (») Nov 26, 2009
A táblázatban a baloldali szürke számok a bemenetet jelölik a jobboldali fehérek a kimenetet.Ha ilyen kimenetet csinálsz rakd át a displayt binarisra és ugy jelenik meg a jobboldali oszlop ahogyan a kimenet müködni fog és jobban megérted hogyan is müködik
(#) sniperx hozzászólása Nov 26, 2009
Kis segítséget kérnék, ha lehet.
A cél az lett volna ezzel a kapcsolással, hogy a 4 lábat az analóg bemenetre érkező jellel egyenesen arányban gyújtsa ki. Bevallom, nem tiszta, hogy is kell a CALL rutinnál elkészíteni a tábláját. Ezt elmagyarázná valaki?
Magyarul: mi mit jelent és hogy is kellene átírni, hogy a BV2 a fentieknek megfelelően adjon kimeneteket?

lin.PIC
    
Következő: »»   127 / 179
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem