Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   108 / 179
(#) dcsabi hozzászólása Máj 15, 2010
Az one-shot, a nevében is benne van...
Egy impulzus előállítása, nincs szükség idő megadására, mert a program egyetlen ciklusára érvényes és amivel kapcsolatba hozzuk, abban biztosan "elvégzi a dolgát"...
Természetesen, pozitiv és negativ szinteket is figyelhetünk vele.
Nagyon fontos "rutin" ez a vezérléstechnikában, ne hanyagoljuk el a jelentőségét, használjuk bátran, stabil program alapeleme a bemeneteken illetve a program egyéb részein is...
Érdekességképpen jegyzem meg, az I2C kezelésekor, ezen egy impulzussal kiolvasható egy ilyen eszköz.
(#) aderka válasza jdani hozzászólására (») Máj 15, 2010
Igen, de a sok időzítést jobb kerülni. Inkább számlálókkal szoktunk időzíteni, mint megpakolni a programot monoflopokkal, és Delay-ekkel, Timerekkel.
(#) jdani válasza aderka hozzászólására (») Máj 15, 2010
a mono flop is ugyanez nem? Csak ott lehet állítani a kimenetet is, meddig tartson 1-es értéket.
(#) aderka válasza jdani hozzászólására (») Máj 15, 2010
1 impulzus.. Ha 1-es értéket adsz a bemenetére, egy rövid tüskeimpulzust ad a kimenetén..
(#) jdani válasza aderka hozzászólására (») Máj 14, 2010
Sok helyen látom még az One-Shop funkciót. Mi is ez? én kb olyannak látom mint egy mono-flop. Vagy nem?
(#) jdani válasza aderka hozzászólására (») Máj 14, 2010
még az üzletbe van a PIC és a kijelző
(#) aderka válasza jdani hozzászólására (») Máj 14, 2010
Elvileg igen . Égesd bele próbáld ki.
(#) jdani válasza aderka hozzászólására (») Máj 14, 2010
az utolsó pár sor kérdésen kívül csak a programot írtam le, amit készítettem, hogy mivel volt gondom, mit hogy csináltam stb Beleégetem a PIC-be, a megfelelő helyre kötöm az LCD lábait, bekötöm a kvarcot, a MCLR-t fel a +ra ellenállással, és mennie kellene?
(#) aderka válasza jdani hozzászólására (») Máj 14, 2010
Valószínű félreértettem, de most sem teljesen tiszta mit is akarsz. Válaszolok amire tudok.
Mi számoljon visszafelé?
Ami szimulációban működik általában az életben is.
Olyan kvarcot használj amilyen van . Én 8MHz-eset szoktam mert az van itthon sok, így nem kell vennem. 4MHz a megszokott, ez esetben XT oszcillátor lesz. 22pF-os kondik kellenek körülbelül.
Ha még mindíg nem a lényeget mondtam, akkor fogalmazd meg úgy hogy értsem .
üdv: Dávid
(#) jdani válasza aderka hozzászólására (») Máj 14, 2010
Nemértem miért küldöd nekem ezt. írtam hogy nekem nem az kell msot hogy egy működő PIC-s voltmérőm legyen, hanem a tesztelés. Sok kérdés, amit nem válaszoltál meg..
(#) aderka válasza jdani hozzászólására (») Máj 14, 2010
Szia!
Valami hasonlóképp próbálkozz!

üdv: Dávid

VAmero.PIC
    
(#) jdani válasza aderka hozzászólására (») Máj 14, 2010
Ehhez mit szólsz? Egy voltmérő, természetesen pontatlan, de a gyakorlat a lényeg. A komparátor kapcsolta volna kijelzőt, de amikor az ADC érték a maxon van, akkor az 5 kijelző CF lába mindig aktív lenne, azért tettem oda egy mono-flop-ot. Viszont ha csökken az érték, akkor vissza nem ment az érték, hacsak nem kezdtem előröl. Azzal bajlódtam egy pár órát, hogy hogyan megoldani, hogy visszafele is számoljon. Mennyire bonyolult megoldást használtam? Elméletileg működne ha PIC-be égetném? 8MHz-ről a kvarc értékét át lehet írni? Mi szerint válasszam a kvarc értékét?

vmeter.PIC
    
(#) dcsabi válasza Ferkógyerek hozzászólására (») Máj 10, 2010
Nagyon szívesen.
Örülök, hogy müködik...
(#) Ferkógyerek válasza dcsabi hozzászólására (») Máj 10, 2010
Sikerült a két LM75 kiolvasása.
Az asm rutin amit írtam jó volt, csak nem jó helyen.
Áthelyeztem és máris működött a dolog.
Ha valakit érdekel érdekel itt található az eredeti Dcsabi által írt program. Én csak az II2_1.inc fájlt módosítottam és a Parsic fájlt. A módosított fájlok a mellékletben.
Csabi köszönöm a segítséget.
(#) dcsabi válasza Ferkógyerek hozzászólására (») Máj 9, 2010
Ne M0.2 nek az állását változtasd csak,(a pic mást sem fog csinálni mint I2C-t olvasni) hanem hozzál létre egy másik bitet is M0.3 (ez tartozik a másik szenzor címéhez) és ezt is célszerűen one shot kapcsolja, pár ms és kész is a kiolvasás így.

Ezeket a bit változtatásokat ismételgesd Pl: 500ms-al...
Azok a programsorok amelyek ki vannak iktatva, azok valőszínű nem kellettek...
Nem találom azokat az Inc fileket, a másik laptopomom van a teljes projekt (az meg "beteg")
Azért így konkrétumok nélkül próbálok segíteni.
(#) dcsabi válasza Ferkógyerek hozzászólására (») Máj 9, 2010
Amit módosítottál annak űgy nem sok hatása van...
valami olyasmivel próbálkozzál, hogy adjál egy másik szubrutin cimet Pl: set_slaveADR1
és a Parsic-ban ha egyik feltétel előáll akkor az egyik cím
állításra ugrik, ha a másik feltétel áll fenn akkor a másik cím állításra ugrik.
A MAIN.inc file-ból vehetsz példát, ahogy az írás és olvasás elkülönítése történik feltételes ugrással, -valamelyik változatban 4 db ugrást is tettem.
Természetesen a kiolvasott értéket is el kell különítened(MX modul)...
- erre már tettem javaslatot...
(#) Ferkógyerek hozzászólása Máj 9, 2010
Sikerült még tovább jutnom.
Az LM75_AV fájlban ki lehet választani közvetlenül az érzékelő címét, csak ez a pár sor ki volt iktatva.

  1. ; Set SlaveADR
  2.         ;movlw 0        ; can be 0 or 1
  3.         ;banksel iislaveadr
  4.         ;movwf iislaveadr
  5.  
  6. ; Set Clock Mode
  7.         movlw B'00000001'        ; Address 15 - control
  8.         banksel iiadr
  9.         movwf iiadr
  10.  
  11.         movlw B'00101000' ; Control byte, see Datasheet
  12.         banksel iidata
  13.         movwf iidata
  14.  
  15.         call PCF8583WriteByte
  16.  
  17. ; Get current time
  18.         ;call PCF8583ReadClock


Ha itt a második sorban található értéket változtatom 1 és 0 között, akkor más-más érzékelőt olvas ki a program. Azt szerettem volna elérni ha ezt a kapcsolót a parsic vezérli, ezért kiegészítettem a programot pár sorral, most így néz ki.

[/code]; Set SlaveADR
movlw 1
banksel m0
btfss m0,2
movlw 0 ; can be 0 or 1
banksel iislaveadr
movwf iislaveadr

; Set Clock Mode
movlw B'00000001' ; Address 15 - control
banksel iiadr
movwf iiadr

movlw B'00101000' ; Control byte, see Datasheet
banksel iidata
movwf iidata

call PCF8583WriteByte

; Get current time
;call PCF8583ReadClock

[code=c]

De hiába változtatom a Parsicon belül M0.2 értékét, mindíg ugyanazt az érzékelőt olvassa ki a program. Hol rontottam el a dolgot?
(#) Ferkógyerek válasza dcsabi hozzászólására (») Máj 9, 2010
Szia Csabi!

Csak most volt időm ismét foglalkozni a több LM75 érzékelő kiolvasásával.
Amit javasoltál első lépésnek
Idézet:
„Ha külön-külön mindkettőt helyesen huzalozva a cím átírásával ki tudod olvasni, akkor tovább léphetsz...”
azt sikerült megcsinálnom. Az LM75_I2C.inc fájlban három helyen kellett megváltoztatni a slave addresst.
A következő lépésnek azt gondoltam hogy a slave address értékét az INC fájlban, a konstans szám helyett átírom egy a Parsic által előállított bájtra pl: S3.
Így a továbbiakban a Parsicból tudnám vezérelni hogy melyik érzékelőt olvassa ki. Ehhez kellene további segítség.
(#) aderka válasza proli007 hozzászólására (») Máj 7, 2010
Igen jogos ez lemaradt .
(#) proli007 válasza aderka hozzászólására (») Máj 7, 2010
Hello!
Idézet:
„Azaz ha 0-255 ig vesz fel valami értéket”

Tegyük hozzá, hogy amennyibe az AD modul, 8 bitre van beállítva. Mert ha 16 bitre, akkor 0..1023-ig.
üdv! proli007
(#) aderka válasza jdani hozzászólására (») Máj 6, 2010
Így igaz... Itt is járd végig a létra fokait. Kezd villogókkal, futófényekkel, léptetőmotorozz, LCD kijelzőzz.. Szépen lassan mindere csináltál progit, tesztelted is, akkor majd lehet továbbvinni a dolgot.
(#) jdani válasza aderka hozzászólására (») Máj 6, 2010
Értem azt hiszem Nemsoká veszek egy pár 877-est meg egy pár 628A-t és majd tesztelgetek van még most is egy jó pár dolog, ami nem világos a parcisban, de nehogy már egy hét alatt akarjam kitanulni az egészet
(#) aderka válasza jdani hozzászólására (») Máj 6, 2010
628-as PICnek nincs valódi analóg bemenet, sajnos ott nemtudod használni. 874-877 ig van, ezeknek is HA MEGNÉZED AZ ADATLAPOT , láthatod, hogy az A portja analogként is használható. A többi nem. Tehát ha megadod, hogy ADC0 akkor tudni fogja a program, hogy az adott PIC ( azaz 877 ) 0. analog lábára gondolsz . Azaz az RA.0 lesz analog bemenet. Ezt jobban nemtudom elmagyarázni.
A Komparátort sokféleképp/sokmindenre használhatod. Tulajdonképpen ugyan azt csinálod mint ha müv erősítővel játszanál. Az 51 egy beállított, tulajdonképp alapjelként fogható fel, amihez viszonyít. A másik bemenete amit figyel. Az ADC0 egy folyamatosan változó érték. A relációt gondolom érted. A példaprogi amit feltöltöttem egyértelmű.
(#) jdani válasza aderka hozzászólására (») Máj 6, 2010
ilyen ADC konvertert csak megadott lábakra lehet kötni, vagy akármelyik IO lábra? PL 16F628A-nál melyik lenne az? Ha bármelyik láb lehet, akkor hogy nevezem el, ha pl az RB.5-re akarom? Van az ADC0 bemenet a konverteren, és ez a bemenet a komparátoron. B ponton meg az 51-es érték. A komparátor honnan tudja hogy mi ez az 51? Onnan hogy az A ponton ADC0van, tehát a B pont is az ADC konverter értékét figyeli? ... Nem lett volna az ADC-nek egy bementet és kimenetet?...
(#) aderka válasza jdani hozzászólására (») Máj 6, 2010
Ha azt akarod, hogy az RA.0 analóg bemenet legyen, akkor lehúzod a DAT modult, és elnevezed ADC0-nak. Ha az RA.1-es lábat akarod analognak akkor ADC1.
Az intervallum minden esetben 0-5V ig értendő. Azaz ha 0-255 ig vesz fel valami értéket értelem szerűen ki kell számolnod mennyi mondjuk az 1 V. Az 1 az 5-nek az ötöd része, tehát a 255:5=51. Felhasználni úgy tudod például, ha leteszel egy Comparator modult. Ennek 2 bement lába van. Ráklikkelsz az egyikre, és megadod, hogy ADC0-át figyelje. Ráklikkelsz a másikra, megadod, hogy 51. Azután ráklikkelsz magára a comparator modulra, és kiválasztot a relációs jeleket. Ha azt akarod, hogy kapcsoljon fel egy led ha a bejövő jel 1V vagy annál nagyobb akkor a nagyobb vagy egyenlőt választod ki.

analog.PIC
    
(#) jdani válasza aderka hozzászólására (») Máj 6, 2010
Újra nézegetem ezt az ADC konvertert, de nemvilágos... Azért értem hogy ha elnevezem ADC0-nak, és a ,,bemenetet,,?... elnevezem RA.0-nak, akkor ha oda arra a lábra kötök egy értéket, mondjuk 4V, és akkor mi van? .... Honnan tudom, hogy mennyi az az érték? Mondjuk azt akarom, hogy egy LED kivilágítson egy kimeneten, ha az a bemenet kap 0,5V-ot. Honnan tudjam hogy ez az ADC konverteren milyen érték lesz? De még ha tudnám is, hogy ha oda 0,5V-ot kötök, akkor ott az érték 8bitben 16 lesz, és ezzel mit kezdek? ah eléri a 16-os értéket, akkor valahol egy kimeneten meg kell hogy jelenjen egy LOG.1 érték. Ez lesz az ADC jobb oldalán lévő ,,kimenet,,? Le tudnád rajzolni azt, hogy mondjuk, 0,5V-tól bekapcsoljon egy LED (egy kimenet aktív legyen) és 4V-tól inaktív egy kimenet..
(#) baloghzoli1 válasza herzsolt hozzászólására (») Máj 5, 2010
Szia a sleep modullal, de benne van a sugóban de leforditottam a guglival azért remélem érthetö
"Az ilyen tárgyú el lehet mozgatni a mikrokontroller az alvó üzemmódba.
Ha az IN-bemenet fekszik a magas szintű, akkor az alvó üzemmód be van kapcsolva, a program leáll és az oszcillátor ki van kapcsolva.
Visszaállítani a normális funkció 2 lehetőség áll rendelkezésre.

1. pozitív él az Rb0-bemenet
2. módosítására szintet RB4, RB5, Bb6 ... RB7"
(#) herzsolt hozzászólása Máj 5, 2010
Tudnátok segíteni, hogy hogy tudom megvalósítani a sleep üzemmódot PIC16F628 estében? Előre is köszönöm a segítséget.
(#) jdani válasza aderka hozzászólására (») Máj 5, 2010
a futófény és a villogó, az 877-esre van, azt meg nem tudom kipróbálni, mivel olyanom nincs, de amit Te módosítottál az én rajzomon, azt beleégettem, az ,,működött,,(nem sorba, és csak 2 LED villogott, de azért mert nem jól volt megírva a kimenetek)
(#) aderka válasza jdani hozzászólására (») Máj 5, 2010
Most még mindíg nem közölted , hogy mentek a programjaim?
Következő: »»   108 / 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