Fórum témák
» Több friss téma |
Igen be van kapcsolva de arra jottem ra, hogy arra a labra (RA.4) nem tudtam kuldeni semmit. Atirtam a progit masik labra es mukodik most az oda-visza kommunikacioval kuzdok...... egyebkent kosz
Igen 877-est es 628A-t hasznalok mindkettovel megy az adat kuldes es fogadas is de csk egy iranyban
ketiranyu adat kuldes es fogadas valamiert nem megy tehat nem kommunikalnak pedig kvartz egyforman 4MHz orajel egyforma stb........nem tudok rajonni, hogy mi lehet a hiba nezegettem itt a topicban is de nincs olyan pelda, hogy ket pic egyszerre kommunikaljanak...
Egyenlőre nem találtam semmit. Sorszám hiba sincs.. Nemtudom mi lehet.
Nem tudom mi a valós célod ezzel a kommunikációval?
Célszerú mester-szolga elvhez hasonló módszert használni... Tehát ne vaktában adjon mindkét PIC, hanem az egyik amelyik fő feladatot látja el, düntse el mikor ad és vesz, illetve lekérdezi a szolgát, az meg válszol, küldi az adatot. És ha nem muszáj, ne legyen folyamatos... A konkrét feladatot nem ismerem, ha esetleg dióhéjban összefoglalnád...
Szia Csabi!
Eloszor is kosz a segitseget, igen pontosan erre kellene valami kis pelda jellegu dolog, hogyan tudnam ezt megoldani a parsic-kal. Kovetkezo lenne a feladat: adott egy gep amin van 10 hidraulikus henger amit kb. 4 meterrol kellene vezerelni es ezen a gepen van 4 vegallas kapcsolo amit a vezerlonek venni kellene es van ra 5 szal vezetek nagyon fontos, hogy nem lehet tobb vezetek ezert gondoltam erre a megoldasra. De az az erdekes, hogy pl: ket 16F628-assal megy minden gond nelkul a dolog oda- vissza de 877 es 628-al mar nem nem tudom, hogy ertetted a mester - szolga dolgot tudnal esetleg egy rajzot csinalni hozza? Nem komplett kapcsolas csak pelda kellene hatha meg tudnam oldani es talan masoknak is segithet... Elore is kosz
Hello!
Ott van a sor száma, ahol a hiba van. Mint ha nekem is lett volna ilyesmi hibám, valami portra nevére hivatkoztam 8 bites adatnál, ha jól emlékszem.. (szimulátor nem veszi észre..) és a változók deklarálásánál volt a hiba. üdv! proli007
A mester-szolga módszer a software-ben rejlik...
Szerintem oldjad meg úgy, hogy a tényleges vezérlés a ki bemenetek kezelése a müködtető programmal legyen a gépen, a kezelőpanel meg a 4m-s távolabbi helyen. Itt azért, ha be akarod tartani a szabályokat, kell egy huzalozott vész-stop kapcsolót is használnod. A kezelő felületre kijelzőt is akarsz, vagy csak a ki be kapcsolókat (nyomógombokat)? Automata müködésü, vagy kézi müködtetésü, vagy mindkét üzemmódot tudnia kell? Lehet a kommunikáció sebességét (az uart-on átvitt kapcsolók miatt) növelni, hogy 4Mhz beállított frekvencia mellett mindkét PIC-en használj nagyobb (egyforma)quartzokat akár 20Mhz-t is. (a Parsic-ba 4Mhz-t írj) Nem tudom miért nem kommunikál egymással oda-vissza a két jelzett PIC, használj két max232-t port illesztésnek a távolság miatt mindenképpen keel majd, mennie kell... A program strukturáján sok mulik, csak akkor használd az uart vonalat amikor a programnak szüksége van rá...A Parsic szerint 50-100ms-onként, ha felgyorsítod 20Mhz-el akkor 5x gyorsabb, ennek bőven elégnek kell lennie.
Igen pont ezert valasztottam a ket pic kozotti kommunikaciot, mert ott van a veszkor is es a tapfesz is. Van egy LCD kijelzo is es termeszetesen mukodik MANUAL es AUTOMATA modban is de a gepet tavolabbrol fogjak kezelni es a vezerlo doboz rajta van a gepen es ide mennek a vegallas kapcsolok is. tehat mindenkepp kommunikaltatnom kell oket. A program megirasa nem okoz gondot ( a parsic-kal ) de a kommunikaciot olvasgatva sem ertem teljesen a lenyeget. Nekem az is eleg lenne, ha elmondanad par sorban, hogy mire valok az EN es ACT jelolesek mert en ugy ertelmezem, hogy az ACT-n kuldi az adatokat valami impulzusra vagy mi de az EN talan engedelyezo lenne ezek nem teljesen vilagosak. A masik, meg ha kikuldok valamit a 877-rol az rendben is van ha ebbe a programba beteszek egy vevo modult, akkor mar el sem kuldi az adatot. Ugyhogy nem igazan ertem..
De lehet, hogy rossz felol kozelitem a dolgot
Pár hét alatt mennyit fejlődtem.. Mind magam alakítása. Még a felénél se tartok, vagy talán már a felénél. Egy óra, és egy időzítő lenne benne. És 4 konektort kapcsolna. A megadott időben kapcsolná ki-be az egyes konektorokat. Elég nehéz feladat számomra, de egy év múlva kell hogy elkészüljön. Még nem sikerült kiküszöbölni, a menu gomb lenyomásakor, hogy mindig kijöjjön az amit szeretnék, mert sok esetbe nem az jön. Ilyenkor exit, és újra menu. Alul van mégegy kivezetés, ami az óra beállítására van. Amikor menü / ido beallitas, akkor megnyomva a 3. gombot odalent megjelentik a nap és az óra megállítva.
EN (engedélyezés)
a modul ablakba beállítod adásra, felkinálja a programban eddig használt Byteokat. -ebből bejelőlőd melyiket akarod elküldeni. ennyi az adás... ACK nyugtázás, egy bit bekapcsolásával jelzi, hogy elvégezte a byte-ok átvitelét, vagy vételét. Jótanács: - a kommunikációban résztvevő adatokat (Byte-okat) nevezd el -a Parsic által automatikusa nem használt- nevekre, ADAT1,ADAT2,...stb, nehogy a Parsic a programírás módosítás, stb közben átírja másra és elkerülje a figyelmedet, majd helytelen lesz az adattovábbítás.. Vételnél egy modult bejelölsz vételre, az adatokat szintén az adásnál említett módon be kell jelölni vételhez. Célszerüen adatforrás modult használj segéd modulként (amit egyébként Pl: ADC-hez használunk) ezt is nevezd el Pl: VETT1, VETT2, stb... Az adás és vétel párban való hasznlatához, meg kell egyezzenek a két oldalon használt Byte-ok számának. Ha 12 Byte-t adsz, akkor 12 Byte-ot kell várnod a túloldalon. PC-vel is gyakorolhatsz, az Rs-check.exe segédprogival itt a topic első 40 oldaláig fent van. Max232 port illesztőt használj... Az adást csak ciklikusan szabad használni pl 50-100ms...vagy egy bizonyos esemény által indítva... Nézd meg a feltett müködő programjaimat is (kb 50. oldalig)
Igen elvileg igy csinaltam megsem megy illetve, most mar annyi mukodik, hogy 16F628A ad 16F877 vesz es kapcsol egy kimenetet de a kimenet bekapcsolva marad vissza ugyanez vagy egyaltalan nem is kapcsol. Felteszem a ket peldat ahogy gondoltam hatha tudsz ra mondani valamit. Koszontem a segitseget
udv Sanya
HEx fájl konvertálásakor sok-sok hibaüzetet. Mit is akar ő tőlem?..
Szerintem oda csak bit-eket irhatsz nehany helyen hianyzik is....
Kicsit alakitottam rajta probald most forditani
udv
milyen biteket? Valami példa rá?
mojzess: Köszi szépen, viszont én abból nem tanulok máskor, ha más csinálja meg helyettem Én magamtól szeretném, de nemtudom hogyan, azért kérdezem hogy mit hogyan hova
Mondja"Ő" szép sorjában mi a baja.
A bites változók helyére byte-os változókat kötöttél... Pl: S12 Byte S11.2 bit... sok helyen... Jobb egérgombbal kijelöl kitöröl, entert nyom, automatikusan átsorszámoz... Egy ÉS kapu bemenetére például ne akarjál S12-t tenni... Rajzolj több oldalra, a (számbillentyükkel vélthatsz lapot) és nem lesz ilyen zsúfolt. Valójában itt lenne értelme a Label (P1:X) használatának.
nezd meg, azt amit atalakitottam azt rendesen forditja. Egyebkent a Parsic azt irta, hogy bit nevet kell hasznalni. Pl: ha sima ES - VAGY kapukat hasznalsz, akkor nem lehet a bemeneten S7 mert az 1 byte nev helyette inkabb s7.4 legyen mert az bit nev. illetve a subrutinnal nem lehet kotojelet hasznalni, mert nem engedi. Tomoren ennyi lenne
Tovabbi sok sikert az orahoz udv
Latom csabi megelozott az a jobb megoldas
udv
Szia csabi latom megint itt vagy meg tudtad nezni a ket file-t amit feltettem? Igy probaltam a kommunikaciot, mivel mashogy egyaltalan nem csinalt semmit kiprobaltam masik pic-kel is tehat nem azok rosszak egyebkent megneztem a programjaidat az elso 40 oldalon el is mentettem a gepemre azert mertem hozzafogni az uarthoz.
Azt csinalja, hogy ha a 877-essel kuldok adatot akkor a 628 veszi gond nelkul es vissza is igy mukodik de csak addig, amig a 877-es programjaba bele nem teszem a vetelt is na onnan kezdve nem jo. Lehet, hogy kesleltetnem kellene azert nem ertem mert ugye 2 szal vezetek van bekotve tehat ha az egyik ad akkor attol meg a vetelnek mennie kellene vagy tevedek? Kosz Sanya
Nem ilyen egyszerű, ez azért, -tettem fel példaprogikat, nézz azokba bele...
Az Uart az valójában mindig vesz, ha hardwaresen inicilizálva van a programban, nem kell így duplán ráerőltetni. Felteszem ide a gyári példákat szép sorban akinek esetleg nem lenne meg, én is ezek alapján építettem fel a programjaimat.
Adás mintapéldák...
Csabi koszonom (es a turelmet is) megprobalok valamit kiokoskodni.
udv
Nekem úgyanúgy kiír egy csomó hibát...
melyikre ir ki hibat amit elkuldtem?
Varj ugyan azt kuldtem, vissza mindjart javitom....
Ok ez mar a javitott bocs az elobb rosszat kuldtem
udv
Nem tudom milyen pontosságot akarsz, de az óra így nem fog pontosan járni...
Két lehetőséged van: 1, kapcsolsz a PIC mellé egy valós idejű óra IC-t Pl: PCF8583 , vagy RS 5C372A, ezek I2C busszal kommunikálnak, és tettem fel a topicra kiolvasási példákat hozzájuk. egy miniatűr 32768khz quartz és egy mini 3v gombelem vagy 0,47F kondi kell a háttér müködéshez akár áramszünet esetére is. 2, ha biztos vagy a tápfesz állandóságában, akkor egy másik PIC Pl 16F628A beállítva 1 Hz adására valamelyik lábon kiadva. Ezt az impulzust kell a másik PIC egy lábára vezetni és az lesz az alap 1 Hz, ez pontos lesz, mert nem csinál mást a PIC. Ha megnézed, a processzeoros áramköröket, mindenhol használnak külön óra Chipet, a pici hengeres quartzról ismered meg...(innét tudja hány óra van és milyen nap...)
Az én PIC-es órám is a neked leírt tanácsok szerint épült meg.. Azaz külön egy kis áramkör adja a pontos 1Hz-es órajelet, így elértem, hogy pontos. Míg belső órajelet használtam, pontatlan volt, ami annyit takar, hogy hetente be kellett állítanom, mert 2-3 percet sietett.
Ha ajánlahtom akkor a csatolt kapcsolást építsd meg hozzá, nálam tökéletesen működik. üdv: Dávid |
Bejelentkezés
Hirdetés |