Fórum témák

» Több friss téma
Fórum » Modulrendszerű, grafikus PIC programozás
Lapozás: OK   97 / 177
(#) vilmosd válasza dcsabi hozzászólására (») Jan 9, 2011 /
 
Mar bocsanat hogy belevau, de ha nem ismered a I2C kommunikacio alapjait, akkor inkabb ne beszelj rola.
Idézet:
„Ebből is látszik, hogy az ACK az nem az ellenállomásnak szól, (hogyan is szólhatna így)hanem a programban lehet használni segédletként”
I2C doku 15. oldalt (ne csak azt) olvasd el legyszives. Vilagosan leirja, hogy az slave altal vett byte-ot az "ACK"-val nyugtazza a masternak, ugyanigy a master nyugtazza a slave altal kuldott adatot az "ACK" bit segitsegevel. Az SW I2C megoldasoknal nagyon figyelni kell erre, mert kulonben elakad a kommunikacio, es varhatsz napestig a slave valaszara.
(#) Panhard válasza vilmosd hozzászólására (») Jan 9, 2011 /
 
Bocs,, hogy én is beleszólok, de olvass már vissza mielőtt leugatsz valakit. Egyáltalán nem I2C-ről volt szó.
(#) dcsabi válasza vilmosd hozzászólására (») Jan 9, 2011 /
 
Az előbbi "választ"(?), az emberi kommunikációdra tudnám ugyanígy elmondani.
Nem akarom folytatni...vettem három nagy levegőt...
Nem az I2C kommunikációról volt szó pillanatnyilag, hanem a három PIC-ek között próbálunk UART segítségével adatforgalmat létrehozni.
A Parsic Uart moduljainál lévő ACK-ról van szó, pontosabban ott ACT- nek van rövíditve...

ACK_ACT.JPG
    
(#) vilmosd válasza Panhard hozzászólására (») Jan 9, 2011 /
 
Akor azt kell irni, nem ACK-t.
(#) vilmosd válasza dcsabi hozzászólására (») Jan 9, 2011 /
 
Inkabb olvassal
(#) kkrisz75 válasza dcsabi hozzászólására (») Jan 9, 2011 /
 
Teljes megakadás...

A program 250ms intervallumon belül 50ms-onként kellene adatot fogadni. Vagyis az első 50ms-ban az első a második 50ms ban a 2. és és így tovább.
A LCD 250ms ban frissít, így az alatt mindig új adat érkezne be egyenként a pic-ektől.

A 877es fogadja a KMH és RPM változó adatait.
Számlálóval leválasztva. Vagy is 50ms-ig csak az első pictől érkező adatot kellene fogadnia, amit RPM változóként meg kellene jegyeznie.
A második ugyan így KMH változóként jön és kellene megjegyezni.

Eredmény:
628/1 Lásd, bejön 250ms alatt 8 jel akkor 8 az RPM értéke amit elküld a 877nek
628/2 számláló 1mpenként léptet és KMH változó adata annyi amennyi éppen.
877 A felső sorba kell kijelezni az RPM értéket legalsóba a KMH-t.

Ar RPM adatait ki írja az alsó sorba.

A rossz hogy ez így nem jó.
A jó, hogy legalább van valamiféle Kommunikáció.(Eddig az se volt csak egyszer véletlenül.)
(#) kkrisz75 válasza kkrisz75 hozzászólására (») Jan 9, 2011 /
 
Felfüggesztem ezt a vonalat. Semmi értelme, csak bele gabajodni, mert lassan nem tudom honnan indultam, és mi volt már és mi nem.

Megrendelem az összes alkatrészt ami kelleni fog. Alapszinten összerakom, hogy tesztelni lehessen a kommunikációt 20MHzn sorba kötve. Ha nem lesz késés akkor nem kínlódok, ha lesz akkor agyalok tovább.

A kérdés még
1., az, hogy 2 pic 1-1 lábát szabad-e direktbe üsszekötni.(kaqkk ötlete alapján küldő a jelet a másik picből aktiválni)
2., Honnan tudom mekkora ellenállást tegyek egy 2 lábú termisztor és a +5V közé. Ha jól értettem a régebbi hsz-eket, a termisztor és az ellenállás közös pontjára kell a lábat kötnöm.(nincs adatlapom a termisztorról) Mérjem meg 25C-on az ellenállást? Vagy 100C-on?
(#) proli007 válasza kkrisz75 hozzászólására (») Jan 9, 2011 / 1
 
Hello!
A termisztoroknak általában -3,6%/°C a hőmérsékleti együtthatójuk. De hőméréshez nem a legmegfelelőbbek.. (TINA)
üdv! proli007
(#) kkrisz75 válasza proli007 hozzászólására (») Jan 9, 2011 /
 
Nem kell pontosnak lennie.

Volt a boltban 1db 100 forintért.
Elhoztam, hogy tudjak próbálni AD bemenetet használni. Semmi másra nem kell.

Ha sikerül körülbelüli jó értéket kicsalni, akkor az itt emlegetett LM35CZ lesz az igazi ami bekerül a kocsiba a hőmérő helyére. Vagy egy olyan ami -30 és + 130 közt tud működni, és van adatlapja.

Amúgy is kell ilyennel próbálkozni, mert a benzin szintmérő is ellenállás alapon mér.

Ennek a termisztornak 100C-on 4 Kohm, 50C-on 16 Kohm, 25C-on 44 Kohm. Ezt most mértem le. A jég még nem fagyott le a hűtőben, hogy a 0-t is tudjam.
(#) vilmosd válasza kkrisz75 hozzászólására (») Jan 9, 2011 /
 
Hali
Ez a termisztor nem nagyon alkalmas a PIC AD atalakitojahoz. Oda olyan kellene aminek a legnagyobb ellenallasa 10k. A PIC AD-hez az adatlap szerint 5k forrasellenallast ad meg. Tehat ez a merokor nem fog rendesen mukodni. Inkabb alaklmazz MCP9700A tipusu szenzort. Kb 70 ft+ifa a Chipcad-nal. Ez 10 mV/C kimenofeszultsegu, linearis, es -40-tol +125 C-ig mukodik.
(#) Gyuresz hozzászólása Jan 11, 2011 /
 
Sziasztok
Remélem senki nem fog hátsón billenteni, mert már harmadikszor kérdezem ugyanazt a dolgot ... valahogy homályban vagyok vele.
Megépítettem egy árramkört pic 16F877 re. Ledeket kellene felgyujtania, és van rajta 4 nyógomb. A ba az , hogy az árramkört hamarább elkészítettem mint a progit, és a ki, és a bemenetek máshova kerültek, mint ahova én szerettem volna, a progi teszi oda őket. ha az árramkört átbütykolném muködne, de nem akarok vele bibelődni. A progiba hól tudom megváltoztatni a cimzéseket? Amugy minden olyan helyre van tervezve hogy kéne müködjön , csak a progi alapból más helyre adja. A multkor is ez volt a bajom , csak szégyeltem bevallani, s azóta sem találtam, igaz nem nagyon fogllkoztam vele. Help PLS.
(#) poros válasza Gyuresz hozzászólására (») Jan 11, 2011 /
 
A ki és bemeneteket neked kell elnevezni. A program nem szokta maga megválasztani, ha mindent jól csinálsz.
Fontos, hogy az elnevezéseknél a pont ne maradjon ki.
/RA.0 - RB.2 -stb/
(#) Gyuresz válasza poros hozzászólására (») Jan 11, 2011 /
 
Az a bajom nem találom melyik az az ikon, vagy, hogy hol keressem...
Tök H..je vagyok nem találom.
Esetleg egy példát nem tudnál mutatni, bekarikázava odairva, mint az első osztályban :pirul:
(#) proli007 válasza Gyuresz hozzászólására (») Jan 11, 2011 /
 
Hello!
Oda kattintasz a lábra a jobboldali egérgombbal, ahol a pont van, és kitöltöd az ablakot. Így pld. ez a láb a B-porta nulladik bitje és input lesz. Ha egy kimenethez írod oda, akkor automatikusan kimenet lesz a porta ezen lába.
üdv! proli007

PIC-Input.png
    
(#) dcsabi válasza Gyuresz hozzászólására (») Jan 11, 2011 /
 
A legelső dolog, ami lendületet ad a további minkádnak, hogy valami a valóságban is működik.
Próbáld ki ezt, a legegyszerűbb ledes villogó.
Ha nincs ott led ahova rajzoltam, akkor nevezd át úgy, ahogy már előttem ezt említették.
Egy példa...
A hex filet betöltheted a PIC-be.
(#) kkrisz75 hozzászólása Jan 12, 2011 /
 
Milyen típusú fileokat lehet include-olni.

Milyen kód kell oda. ASM vagy "C" vagy "hex" ?

Ha a főprogram az INC-ben lenne, és a megadott változók tartalmát LCD re akarom kiíratni, akkor azt hogyan kell?

DAT modul, és a változó értéke megy az LCD text lábára és adni neki egy frissítést?
Vagy a frissítést is lehet az INC ből kivenni egy változóval?

Hasonlóan lehet bemenetet - kimenetet is csinálni?
(#) dcsabi válasza kkrisz75 hozzászólására (») Jan 12, 2011 /
 
Nézz meg egy példát, Pl a PCF8583- mal kapcsolatosakat, a topic elején.
A főprogram a Parsic.
Az INC modullal beillesztesz egy programrészletet, amit a Parsic nem tud.
Az Inc modult lehelyezed a "rajzlapra" és onnét valójában mindent felkinál.
Adj neki egy pár betűs nevet, jelöld ki a program melyik részében akarod elhelyezni.
És felkinálja a szövegmezőt, ott ASM- ben megírod amit akarsz. Bezárod, lemented.
Az Inc-hez való ASM részletben használt változók, ha nem szerepeltek a Parsic-ban addig, akkor ezeket definiálni kell, adatforrással amelyikkel az analóg bemeneteket is megadjuk.
Ha az LCD-re azt a változót akarod kiíratni, ami az említett ASM részletban van, akkor azt csak ráírod a kijelző modul lábára és kész...(frissíti is)
Az egész főprogram rendszere a moduláris lehetőség miatt egy kicsit más, ezért nem tudsz beletenni egy másik komplett ASM programot, de ha a program elején lévő definiciókat illeszted a Parsic rendszerehez, akkor hasonló módon mind az INC elfogadhatja azt.
De azért ezt ilyen egyszerűen nem lehet ráhúzni mindenre.
A Help is segítséget nyújt ebben.
Bemenetet is definiálhatsz így, az elején említett példában is van.
Pár lappal ezelőtt is van egy INC-es komplett projekt.(üzemképes)
(#) HA5AWS hozzászólása Jan 12, 2011 /
 
Sziasztok!

Egy 3*3-as billentyű mátrix rajzra lenne szükségem (elfogytak a bemenetek) Hogyan lehetne megoldani. Az elv ok, hogy 3 kimenet és három bemenet de a dekódolás nem jön össze.
Köszönöm: Gábor
(#) kkrisz75 válasza dcsabi hozzászólására (») Jan 12, 2011 /
 
Abból indult az alapötlet, hogy simpi segítségével rátaláltam a flowcode programra.

Abban órajelből számolva sikerült egy halál pontos fordulatszám mérőt készíteni. Ugyan akkor annak az LCD vezérlése bár nem bonyolult, de képtelen vagyok egyszerű módon Ékezetet csalni a kijelzőmre.

(ASCii kódokkal leszek kénytelen, ha nem megy parsicban a beillesztés.) És ugye ott minden ilyen esetben külön utasítással kell..stb... más teljesen.

Szóval ennek nagy előnye, azon kívül, hogy egyszerűbb és látványos szó szerint grafikus, hogy az ASM ben a legvégén vannak az LCD kiírásokra hivatkozó parancsok. És simán csak át kell írnom a kódját, lementeni és úgy lefordítani.

A másiknál 2 napja bogarászom az ASM kódot és sehol semmi.

Így abból a fordulatszám ASM kódját át tenném. És itt a kijelző lábára a kiírási változók nevét adnám meg.
De ahogy elnézem ez nem ilyen egyszerű.
(#) kkrisz75 válasza (Felhasználó 15355) hozzászólására (») Jan 13, 2011 /
 
Miért adjak meg neki külön karaktert, címet ha tudja az ékezeteket az LCD.

"á" betű a 160 bináris kódja alatt van. Adatlapról minden betű leolvasható.

Csak nem tudom, hol van ASM-ben ez a kód rész, mert ott máshogy címez.
(#) dcsabi válasza HA5AWS hozzászólására (») Jan 13, 2011 /
 
Kb 1-2 hónapja kérdezte valaki, akkor rögtönöztem egy megpldást, keress vissza...
(#) HA5AWS válasza dcsabi hozzászólására (») Jan 14, 2011 /
 
Köszönöm megtaláltam a hozzászólást de sajnos nem látom át a feladatot. A számlálóig eljutottam ami a kimenetre megy, de a dekódolásra nincs ötletem. Ha nem nagy kérés egy Parsic-os példa sokat segítene.

Köszönöm: Gábor
(#) dcsabi válasza HA5AWS hozzászólására (») Jan 14, 2011 /
 
Ime egyet rögtönöztem...
Most ez egy teszt állaptra való.
A teszt pontot aha szimulációban nyomkodod akkor ugrik az egyik kimenet csoport.
A másik bemenet csoportot ha megnyomod e olyan mintha összekapcsolnád őket (egy nyomógombként)
ezt ki fogja írni a kijelzőre...
A valóságban kösd össze a teszt pontot a TR1 kimenetével.
És a panelon a RD.4 -RD.7 sort kössed 1K-val testre darabonként.
Nem állt módomban kipróbálni a valóságban...

MTX_B1.PIC
    
(#) Peti.Janka hozzászólása Jan 14, 2011 /
 
Sziasztok! Olyanra tudna valaki egy megoldást, hogy egy távirányító 1 gombját ha meg nyomom akkor egy kimenetet meg húz 1 mp-ig? A távirányító egy Panasonic Viera TV távirányítója, és egy bemenet választót szeretnék valahogy vezérelni, mert gyárilag sajna 1 HDMI bemenet van csak rajta. Tehát az a rész okozza a problémát, hogy programban, hogy oldjam meg, hogy csak arra az 1 gombra reagáljon amit kiválasztottam? Előre is köszi minden segítséget!
(#) HA5AWS válasza dcsabi hozzászólására (») Jan 14, 2011 /
 
Nagyon köszönöm a segítséged, a hét végén teszek egy próbát.

Üdv: Gábor
(#) dcsabi hozzászólása Jan 14, 2011 /
 
Találtam egy értékesnek tűnő segédeszközt PIC-el PIC-ekhez.
Nem próbáltam ki a panelos részét, csak beletekintettem a PC-s részébe...
Egyébként erről az oldalról ,még sok minden hasznos dolog meríthető...
Pic_segéd
(#) jdani hozzászólása Jan 14, 2011 /
 
Hali. Én UARtal próbálkozok, de nem működik. Program, vagy hardverhiba?
(#) dcsabi válasza jdani hozzászólására (») Jan 14, 2011 /
 
Először próbáld ki egyszerűbben, és ha kommunikál, akkor bővítsd ki...
Adásra ezt próbáld, először...
Vételre a másikat...
A tiédben megint ott van a 2 ms! -így nem fog menni.
Az valójában másodpecenként 500 ciklus, a fordulatszámot percenkénti értékben fejezik ki.
Pl: 6000 1/min az másodpercenként 100 impulzus, ha egy körbefordulásra egy jel jut.
(#) dcsabi válasza dcsabi hozzászólására (») Jan 14, 2011 /
 
Kicsúsztam a módosításból: Az FM_test1-et cseréld ki erre...

FM_test1.PIC
    
(#) kkrisz75 válasza jdani hozzászólására (») Jan 14, 2011 /
 
Ha minden jól van bekötve akkor ennek mennie kell.
Nekem is volt 2ms adás és 2ms, os vétel és jól ment... Csak felesleges. Minél több a változó, annál több idő kell neki.

Ha 500ms a mérős picben a frissítési idő, és az adatküldés frekvenciája, akkor ennek a fele bőven elég a LCD frissítésre és az uart vélelre. Felesleges a 2ms.
Nálam a sok lebontás és a led kijelzés dekádolása miatti frissítés miatt kellett.
De az lcd és az uart nálam is csak 250ms al frissített. Lebontottam számlálóval a frissítési időket. Így 1db timerrel bármekkora, és bármennyi frissítést tudtam megadni bárhova. Akár LDCre 500ms és uartra 200ms, 7szegmensre 10ms, ledsorra meg 2ms.
De csak 1 timer kellett.

Mi az az LCD init rész?
Ha beillesztesz egy ASM programot az bele zavarhat a kommunikációba. Lehet, hogy használ olyan változót kimenetet a program, amit a kommunikáció is. Szerintem ez lehet a baja.

RX-TX van keresztbe kötve a két pic közt. És egyforma a quartz. akkor 20Mhz-el is megy. Nekem is úgy volt és jó volt, nem csúszott.
Következő: »»   97 / 177
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