Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   86 / 179
(#) kkrisz75 válasza dcsabi hozzászólására (») Jan 2, 2011
Akkor a mester valahogy így nézzen ki?
(Bal felső sarok)
Uart Data sorban?

877_2.PIC
    
(#) dcsabi válasza kkrisz75 hozzászólására (») Jan 2, 2011
Kérdés, hogy a mester csak veszi az adatokat, vagy esetleg valamit ad is a szolgák felé?
Tételezzük fel az adás-vételt.
A mester Rx lábát összekötöd minden szolga Tx lábával, a mester Tx lábát meg minden szolga Rx lábával.
Nyilván a programot úgy kell megírni, hogy egyszerre csak egy pár kommunikáljon. Pl: a mester kezdeményezi egymás után sorban, úgy hogy maradjon idő más feladatra is a mester számára.
Itt jöhet szóba az említett ACK, ha befejeződött az átvitel, utána jöhet a következő...stb.
Jótanács, ne pakold tele időzítésekkel és timerekkel, esetleg az LCD-t is 100-200ms-al fríssisd.
Ebben a felállásban még nem próbáltam, úgy hogy lépésről lépésre haladj, esetleg az összes adatvezetékbe iktass be egy-egy 470ohm-1kohm ellenállást.
(#) kkrisz75 válasza dcsabi hozzászólására (») Jan 2, 2011
Közbe elküldtem egy emailt is, nem tudtam, hogy itt vagy.

Tiszta sor 2 pic esetén...

Azt próbáltam és működik oda vissza.

De ha pl:4 pic kell összekötni akkor hogy kötöm a lábakat.

3szolga és 1 mester. A szolgák adják az adatot a mesternek. Aki kiírja az LCD-re.
(#) dcsabi válasza kkrisz75 hozzászólására (») Jan 2, 2011
Az összekötésnek a legyegyszerűbb módja az UART, ha adatforgalomra is gondolsz.
Célszerűen amelyik az LCD-t kezeli az lesz a "mester"
A PIC-ek RX-TX lábait össze kell kötni egymással átlósan, Rx>Tx Tx>Rx. A "szolga" PIC-eknek kell egy vagy két Byte-s címet adni és így azonosíthatóak. (van rá példa, "gyári is") Azonos értékű Qurtz-nak! kell minden PIC-nél lennie.
Ha kifelé, pl: PC -nem kell kommunikálni, akkor el lehet térni a 4MHZ-től, lehet akár 20Mhz is, de akkor mindegyik...
Ez a topicban többször említésre került, tőlem is...
ACK - nyugtázás. Felhasználható a programban is, (bit..)
(#) kkrisz75 hozzászólása Jan 2, 2011
UART-al kapcsolatba lenne kérdésem.

Milyen módja van több pic összekötésének?
Pl 1 pic LCD-t vezérel, és a többi (2-3-4 pic) adatait írja ki.

Mire jó az ACT kimenet a UART DATA modulban?
(#) kkrisz75 válasza proli007 hozzászólására (») Jan 1, 2011
Az lcd-nél nincs is szükség, ebben teljesen igazad van, de uartnál kell, miután az uart a másikban is 2ms. Ha jól tudom annak is egyezni kell a kettőnek.

Ezen felül a 8 dekádos 10db ledes kijelzéshez is kell majd, hogy minél kevesebb legyen a vibrálás.
1000 fordulatonként 10db led és ezt 8lábon küldi ki. Vagyis az 1500esetén, 10majd, a következő 5 led villan fel. ehhez pedig nagy frissítési frekvencia kell.

Ugyan akkor ha az LCDre másik timert teszek szintén csak lassítok.

Még kell finomítani, rajta az tény, de már közelebb vagyunk a megoldáshoz, hogy 4MHz val működő pontos fordulatszám méréshez plusz kommunikáció.

Jdaninak ha nem kell a ledes kijelzés akkor tudja lassítani a 628 ban a timert 100ms ra és a számláló 125ös értékét 25re állítja.
Így a másik picben is lehet csak 100ms.


Közben eszembe jutott(hála neked ezen is gondolkoztam), hogy 2ms os frissítést egy számlálóval lassítani tudom a 877ben is 250ms-ra ami még nem darabos de nem is túl gyors az LCD vezérlésre.
(#) proli007 válasza kkrisz75 hozzászólására (») Jan 1, 2011
Hello!
Bocs, hogy bele beszélek, de lenne egy hozzáfűzni valóm..
Szerintem nem érdemes az LCD-re 2msec-onként küldeni a jelet. Mert leolvasni sem lehetne, a mérési eredmény sem változik ez alatt, csak amikor adat jön, és a proci sem csinál mást, mint állandóan ezzel foglalkozik..
üdv! proli007
(#) kkrisz75 hozzászólása Jan 1, 2011
jdani

Megoldottam!

Ugye a probléma az órajel és a mérési sebesség, megfejelve a program lefutási idővel.

16F628A picbe csak a jelek számának mérését tettem amit a frissítési idővel küldtem ki.(2ms)
A 877A ban pedig az összes többi művelet. Vagyis a 60as szorszás, az LCD vezérlés, és a váltásjelző és eeprom tartalom. Stb... Az uart szintén 2ms al üzemel.

Így mind a kettő 4MHz kvarcal üzemel. működik az adatátvitel. A fordulatmérő pontosan mér. Annyi csak még a kiküszöbölendő, hogy az LCD kijelzésnek van egy kis késése. Amit talán befolyásol majd, hogy a teszt alatt 9600baudrate val volt az adat átküldve. Valószínű javul ha 19000 re emelem.

Ami még módosult és észrevehető a változás, hogy a mikrokontroller beállításokban vissza vettem 4000000 Hz-re de hagytam HS opcióban. (Szerintem ezzel gyorsabban számol, illetve gyorsabban fut le a program mintha XT lenne)

Annyit kellett módosítanom a programomon, hogy most 4 jel per fordulat jön nekem is az infra led érzékenysége miatt. (Vagyis te is tudod használni a programot.)

Amúgy is javasolnám, mert így a frissítési frekvencia az UART modulra 2ms lenne miközben a bemenő jeleket 250ms os mérési idő alatt méri. Mindez 1 timermodullal megoldva. Ugye a több timer modul jobban lassít szintén.

Néztem a te programodat is. Jó a program, de nálam a 250ms os adatátküldés lassúnak tűnt, nagyobb eltérések keletkeztek a fordulat változáskor. PL: már 4000 forgott mikor még csak 3100 at mutatott. Igaz ha tartottam akkor utolérte magát, de sokat késett.

Mellékelem a két programot, nézd át, hátha tudod használni.

Valószínű a sebesség mérést is így kellesz majd megoldani. Külön pic méri majd a jeleket és elküldi a LCD vezérlőnek.
(#) kkrisz75 hozzászólása Jan 1, 2011
B.Ú.É.K.
(#) proli007 válasza Norberto hozzászólására (») Dec 31, 2010
És azt is tegyük hozzá, hogy a bemenet nem lóghat a levegőben, mert simán átveszi a másik feszültségét..
(#) Norberto válasza jdani hozzászólására (») Dec 31, 2010
Szerintem azért, mert a mintavételezés tartókapacitása nem sült ki az ADC1-es csatornára való átváltásnál.
(#) jdani hozzászólása Dec 31, 2010
Van egy programban két hőmérő LM35DZ-vel. ADC0, és ADC1. Ha az ADC0-ra rákötöm az LM35-öt, akkor az jól mutat, viszont az ADC1-re nincs kötve semmi és az is mutat. Az ADC0 23fokot mutat, az pontos. Az ADC1, amire ncisn kötve semmi 13 fokot mutat. De amikor melegítem a szenzort, felmegy a fok fokozatosan 23-24-25-26. De az ADC1, amin nincs semmi, a 13fos is növekszik 14-15-16, stb. Ez miért lehet?
(#) jdani válasza kaqkk hozzászólására (») Dec 31, 2010
Kipróbáltam 876Aval. Bekapcsolom, kiírja hogy 000fordualt, aztán 100fordulal, és 200fordulat. Ezt kb 500ms idő alatt. Tehát félmásodperc alatt fokozatosan nő az érték 000ról 200ra.
(#) kaqkk válasza kaqkk hozzászólására (») Dec 31, 2010
Most jött a "szikra" ! A mérés pontossága az alap frekvencia pontosságától függ ,viszont a 4Mhz nem jön ki kerek értékre ........ (az órám is ezért sietett a kiszámolt értékkel egy nap alatt 11percet ! ) csak az osztás
variálásával lehet közelebb hozni a valósághoz a mért értéket . Az órám 2ms es jeladóval és ha jól emlékszem 242-es osztással már csak pár másodperes késést produkált . 4Mhz-s kvarcnál .
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010
Én megpróbálnám 4M-n csökkenteni az időalap osztásértékét . mondjuk egy 100 körüli értékre, 4 M nál már csak ezt látom járható útnak .
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010
Természetesen....

És XT-ről HS re is a beállításoknál...

Arra azért kíváncsi lennék mit csinál HS beállítássl 4mhz en. 4mhz kvarcal.

És mit csinál 20mhz kvarcal, de HS - 4mhz beállítással
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010
Amikor kvarcot cserélsz a programot is átállítod 20Megára ?
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010
Értem a csúszást, de ez túl soknak tűnik.

Nálam 4 jel megy be 1 fordulás alatt.
vagyis 2ms*125 =250ms Vagyis 1másodperc 1/4-e. Így nem kell felszoroznom 4el semmit, csak 60al, hogy meg legyen a 1/perc értéke.

Ennél volt 1 verzió, amit te is csináltál. Kivettem a frissítést és 250ms ot adtam meg direktem Timer modullal.
Le vettem minden mást, csak az LCD vezérlés maradt. De semmit nem változott a csúszás.
Aztán bepakoltam mindent és megint semmit nem változott a csúszás.

Vagyis Nem értem, hogy 4Mhz- full program ugyan annyit késik mint a lebutított program.

Ugyan akkor 20Mhz mind a kettő jól mér.

De egyenlőre ez nagyon nagy probléma, mert a sebesség mérést is 20MHz-n kell majd megcsinálnom.
Ugyan akkor a Vízhőfok adatait, benzinszint adatait, 1-2 visszajelző adatait át kellene vinnem LCD-re amit csak 4MHz-n tudok megtenni.
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010
Bocs ezt benéztem !Jobban átnézve a progidat már látom
a "tárolót" Ha az alap időzítéssel játszol akkor sem javul a pontosság ? A topik elején leírták, hogy minél több dolgot kell csinálnia a programnak annál jobban elcsúsznak az időzítések . Nem lehet hogy itt is ez a probléma ??

A termisztor bekötése : egyszerű , a termisztort rákötöd a zadc lábra és a gnd re , a lábat felhúzod egy ellenállással a + ra és már kész is .Ha a termisztor ellenállásával egyező ellenállást kötsz rá ,akkor 20c' nál pont 2,5v lesz a pic lábán .
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010
Figyelj.
Átnéztem és a mérő része dettó ugyan az, mint az enyémnek, kivéve a mérési időt, én külön számoltatom, hogy legyen frissítési frekvenciám majd a ledekhez, de mégsem jó a natúr mérő része....
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010
Ez a teljes verzió...

Ebből a ledvezérlést levéve, és 1 váltásjelző beállító kapcsolót levéve volt a kiindulási alap.

A csalások, után lett egyszerűsítve a bal felső sarok, ahol mérem az időt.
Semmit nem változott 4MHz-en.

Amint 20MHz lett a kvarc jól mér ez is.

Fordegyb.PIC
    
(#) kaqkk válasza kkrisz75 hozzászólására (») Dec 30, 2010
A te programodban is azt a "hibát" vélem felfedezni
amiről Daninak is már legalább egy hónapja papolok:
a frekvenciamérést nem jól csináljátok . kell csinálni egy mérést , az értéket menteni egy átmeneti tárolóba
aztán onnan kiíratni a kijelzőre és nullázni a mérést végző számlálót . A programjaitok valószínűleg azért "csalnak"
mert a számlálók nullázása is időt von el ezért a mérés mindíg elcsúszik pár ms -ot és ez valszeg összeadódik .
Neked is ajánlom hogy próbáld ki az előzőleg feltett példát
(tar.pic)
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010
Ez az én egyszerűsített fordulatszám mérőm. Led vezérlés nincs is benne.

4Mhz -el 1000 fordulaton 1320at mér - 2000 néál 2600 - 3000nél 2900.

20MHz -el 1000 fordulaton 1020 at. és mindenhol pontosan

Vagyis a különbség 2 dolog lehet.

A beállítás a XT vagy HS ugyan annál a 4Mhz nél lehet változtat...

Vagy a program lefutási ideje miatt lassú 4MHz-en.

Más:
Nem találtam sehol hőellenállás, termisztor bekötési rajzot.

F60test2.PIC
    
(#) kaqkk válasza jdani hozzászólására (») Dec 30, 2010
Ezt a páldát nem a kommunikációra küldtem! Az mint már
kivesézték csak 4 Mhz-n megy . Ez a mérésre példa
megnézném hogy 4 Mhz-n pontos e ?
(#) jdani válasza kaqkk hozzászólására (») Dec 30, 2010
Most nem tudom kipróbálni, de ennek mit kellene mutatnia? Én csak most kezdek az UART-al foglalkozni, de nem kell a küldéshez az UART data-t is használni? Mert itt csak a bázis van.. Miért mondja azt valaki hogy működik nagyobb kristállyal a kommunikáció, valaki meg aztmondja h. nem működik?
(#) kkrisz75 válasza jdani hozzászólására (») Dec 30, 2010
Sehogy...
Most próbáltam, és nem kommunikálnak.

Így nem tudom én se, hogyan fogok adatot átvinni az egyikből a másikba.

4Mhz-en tökéletes a kommunikáció, de nem mér normálisan a fordulatszám mérő.
(#) kaqkk válasza jdani hozzászólására (») Dec 30, 2010
Ezt próbáld ki 4Mhz-n (csak a kíváncsiság kedvéért)

tar.PIC
    
(#) jdani válasza kkrisz75 hozzászólására (») Dec 30, 2010
20megával jól mér, viszont használni akarom az UART-ot, és azt nem tudom még, hogy akkor hogyan fognak kommunikálni, ha csak 4megán megy (állítólag)
(#) kkrisz75 hozzászólása Dec 30, 2010
Jdani

Nálam is ugyan az a helyzet mint nálad. Kicseréltem a 4Mhz kvarcot 20MHz-ra, máris jól mér a fordulatszám mérő.

Bár azt nem próbáltam, hogy ha hagyom bent a 4MHz kvarcot és ugyan akkor de HS re és 4MHz állítom a Mikrokontroller beállításoknál. Akkor változik-e.
Lehet csak másképp számol ha XT vagy HS van beállítva.

Mert az órajel még 20000 jel per 250ms esetén az is csak kb 1Mhz a program lefutása annyira kicsi kellene hogy legyen, hogy nem szabadna észre vennie mivel 4Mhz a lefutás órajele.


Más:
Ugyan akkor vettem egy "termisztort" aminek 2 lába van. 45kohm 25c fokon. Nincs ráírva semmi csak csíkozás, de fogalmam sincs hogy találjak rá a neten az adatlapjára.

A fő kérdés, hogy ezt hogyan kell a pic, hez kötni, mert a fórumba visszaolvastam és az ADC lábak beállításiról van szó, de kapcsolás sehol.(lehet vak vagyok?)
(#) kkrisz75 válasza kaqkk hozzászólására (») Dec 30, 2010
Szitkozódás hosszan...

Átnéztem mindent. variáltam a prograot, agyaltam...

mi volt a hiba? Az LCD lábaira forrasztott tüskesorban a test láb leszakadt a próbanyákról, de alig láthatóan, csak nagyítóval vettem észre...

Sorry...
Következő: »»   86 / 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