Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Hú, ez elég problémás. Szerintem nem sok választásod van. A PIC kimenetei nem OC-sek. Még a TRIS-ekkel sem lehet variálni, mert a Vdd felé beépített clamp diódák védik a lábakat.
1. Elcsiszolod a fóliát a kimeneteken és beépítesz mondjuk kapcsoló FET-eket, lehetőleg SMD kivitelűeket a fóliára, így kialakítva az OC kimenetet. Igaz, a S-ükhöz a GND-t valahogy oda kell varázsolni. Ez mindenképpen látható "patchelés" lesz. 2. Lecseréled a LED kijelzőket közös anódosra és a 4511-ek helyére keresel lábkompatibilis, OC kimenetű "TTL" dekódert (pl. 7446, 7447, utána kellene nézni, hogy lábkompatibilis-e). Ha ez az út járható, akkor talán nem kell hozzányúlni a NYÁK-hoz. 3. Ellenállásosztóval, esetleg felhúzó ellenállás+zenerrel megemeled a PIC kimeneti állapotait úgy, hogy a 4511 bemenetének billenése körül mozogjon a feszültsgég. Azaz pl. 3.3V-os zenerrel és a 14V felé beépített felhúzóval a 0V és 5V kimeneti feszültségekből lesz 3.3V és 8.3V, ha szerencséd van, ez elég a 4511-nek. Sajnos ez is fóliacsiszolással jár.
mitől méregdrága egy nyák? Tudsz képet dobni róla, meg hogy mennyi volt?
Sendi,
Ket orok tanulsag: 1. Adatlap a biblia 2. Mielott a meregdraga panel legyartodik az aramkort meg kell epiteni probapanelen es merni es nyuzni Amit Szilva mondott osztos megoldast pl. nem biztos, hogy mukodik, ugyanis ha jo adatlapot nezek akkor 11V a HI ertek... 4V max a 0, hogy kozte mi van, hat lehet smidt triggeres, nem neztem meg tuzetesebben. cd4511.pdf
Helló szilva és gulasoft.
Köszönöm az ötleteket, még rágódok rajta egy kicsit, valami egyszerübb megoldások járnak az öreg fejemben. (pl. ha a kijelzők közös katódját leviszem -5V-ra akkor a 4511 is járhat +5 v-ról és minden meg van oldva. Csak sajnos a táp nem olyan kiképzésű hogy kettős tápot tudjak csinálni. Vagy van egy régi megoldás, de ezen még gondolkodom. Mitől mérek drága egy nyák? Kétoldalas, és nagy. De ami a drágább az a 5 db. film. Csak a filmek 16000 Ft. volt Köszönöm az ötleteket, de a legminimálisabb átalakítást szeretném, és hogy a filmek se vesszenek kárba, mert még kéne több darab. Köszönettel
Helló trudai.
Igen, természetesen próbapanelon elkészítettem mindent, csak a nagyméretű kijelző helyett normál méretű kijelző volt. Ennyi az egész. Köszönettel
Az nem biztos, hogy jó ötlet, ha a katódot viszed a nulla alá, a 4511 kimenetei a rajzon nem tiszta OC-snak néznek ki. A LED szegmenseknek miért kell amúgy 5V-nál több? Sorbakötött LED-ekből állnak a szegmensek?
Helló szilva
Igen a szegmensek sorosak, és a nyitófeszültsége min. 7.5V per szegmens, tehát a tápnak min 10V-nak kell lenni. Közben kezd megszületni a végleges megoldás. Köszönettel.
Bocsesz de nem adom fel, szeretném megérteni.
0x40 = b'10000000' ehez annyit adok hozzá hogy 0 legyen akkor az: b'01111111' = 0x7F azaz 127d, tehát -127d? és mi lesz az átvitellel?
Rosszul írtad fel:
0x40 = 0100 0000 Ehhez 1011 1111 -et hozzáadva (minden bit az ellentettje) éppen 1111 1111 lesz az eredmény. Ahhoz, hogy ebből (8 biten) 0000 0000 legyen, még egyet hozzá kell adni. Igaz, ekkor a valós eredmény 1 0000 0000 lesz, de ha csak 8 bittel számolunk, akkor ugye pont a nullát kapjuk. A következő byte-ra ott lesz az átvitel a 8. biten (0-7 számozzuk az alsó byte bitjeit). Ebből már ki lehet számolni, hogy a 0x40=0100 0000 ellentettje (2-es komplemense) 1100 0000 (1011 1111 + 1), azaz 0xC0. Ellenőrizhetjük is: 0x40+0xC0=0x100. Az 1000 0000 az 0x80, és mellesleg a kettes komplemens ábrázolásban 1 byteon kifejezhető legkisebb szám. Abszolút értékét megkaphatjuk a fent is részletezett módszerrel: a bitjeit negáljuk, majd hozzáadunk egyet, azaz 0111 1111 + 1 = 1000 0000. Valami baj van? Hisz "ugyanazt" kaptuk! Vagy mégsem? Nem, nem ugyanazt kaptuk, csak alakra néz ki ugyanúgy, de ezt most pozitív, előjel nélküli számként kell, hogy értelmezzük: ez decimálisan 128. Mivel a 128-at nyolc biten ábrázolva a legfelső bit 1-es lesz, így ezt már nem tudjuk leírni egy byteon előjelesként. A legnagyobb pozitív szám egybyteos, előjeles ábrázolásban a 127, azaz a 0111 1111. A legkisebb pedig a -128, azaz az 1000 0000. Nem tudom, érthető-e így.
0x80=b'10000000', ehhez újabb 0x80-t kell hozzáadni, hogy az összeg 0x00 legyen. 0x80=128d, vagyis előjellel 0x80=-128d.
De az előző példa nem az igazi, mert mindkét helyen 0x80 szerepel. Pl. 0xA4=b'10100100', amihez 0x5C=b'01011100'-t kell hozzáadni, hogy az összeg 0x00 legyen. A 0x5C=92d tehát a 0xA4=-92d. Az átvitelt pedig nem vesszük figyelembe, mert ez csak a számábrázolás, nem pedig valódi összeadás vagy kivonás.
Köszönöm potyo, szilva.
Szerintem most megértettem. például 0x9B = -101d ?
AQLMGabor, Windows szamologep, Nezetban (View) Tudomanyos modba kapcsolsz (Scientific). F5-tel atkapcsolsz hex modba, es ballitod, hogy byte merettel dolgozol. Beirod 9B, utana rakattintasz a NOT-ra (negalod) majd +1, es kijon a 65h, megnyomod az F6-ot, latod a szamot decimalisan... (abszolut erteke a -101-nek.)
Vissza ellenorzes egyszerubb: beirod neki -101 (decimalis modban) es megnyomod az F5-ot hogy lasd mi jott ki hex-ben... je, 9B Gondolj bele, hogy milyen egyszeru a computereknek ebben a szamabrazolasban szamolniuk, levonsz a 0-bol egyet, es a byte atcsordul FF-be... azaz -1 -be...
Tényleg, a számológépet erre találták ki!!!
Leellenőrizem, jó az érték. De meg is akartam érteni a dolgot. És már megy is, hála nektek nagytürelmű fórumtársak.
Egy problémába akadtam:
Van egy 8bites szám amit szintén egy 8bites számmal kellene elosztani eredményül szintén egy bájtot + egy bájtban a maradékot kellene kapni. Erre találtam a "PIC mikrovezérlők alkalmazástechnikája" c. könyvben a következő programot:
Namost a skpnc helyére jó lessz egy btfsc status, c ? Illetve a bnc helyére egy btfss status, c goto loop?
Az MPLAB-ban ezek benne vannak, mint makrók, mennie kell a kódnak akkor is, ha benne hagyod ezeket.
De ha nagyon akarod helyettesíteni, akkor jó lesz. Az mplab is ugyanerre cseréli, ha 16F sorozattal dolgozol.
Visszatérve a tegnapi órára, összeraktam az áramkört egy 18F252-vel, 20MHz-es kvarccal, meg egy LCD-vel (legalább az LCD kezelő rutinjaimat is kipróbálhatom valamin ). USB-ről kap tápot, reggelre kiderül, mennyit téved.
Sziasztok!
A Idézet: című cikkben nem értem hogy hogy méri a PIC a ventillátor fordulatszámát. Ha valaki tudna segíteni megköszönném. „A processzorvezérelt zöldség tároló”
Azért méri, hogy leálljon ha megakadt a ventillátor.
Ezt értem. De azt hogyan állapítja meg hogy mennyivel forog?
Az kit érdekel... Nem a sebesség a lényeg, hanem maga a forgás ténye.
Nem. Számolod mennyit fordult és minden másodpercben kiolvasod majd nullázod.
Kiolvasott értéket szorzod 60-al, és máris ki lehet írni az RPM-et.
Szóval a venti sárga lábát rákötöm a PIC-re. Aztán egy for() ciklusba............nem nagyon tudom elképzelni.
Sziasztok!
Egy autó indításgátlóját tervezgetem és arra gondoltam, hogy üzem közben miért ne figyelné az akku feszültségét (alacsony töltés , túltöltés). A kiszemelt PIC 18f4320-as lenne és az (A/D) converter modullal szeretném figyelni a feszültséget. A kérdésem az lenne, hogy a bemenetre jutó gyújtás, generátor stb. zajok tönkre tehetik-e a PIC-et? Más megoldást keressek erre vagy hogyan lehet hatásossan kiszűrni a zajokat? Előre is köszönöm!
Bemenő jelet kondikkal szűrni kell.. Puffer kondinak kell egy elektrolit, tüskék leharapásához pedig kerámia kondi. Tápot induktivitás és kondi párossal szűrni kell.
Én 7805-el és 100nF-os kondenzátorokkal szűröm egy töltésszabályzóban a zajokat a pic számára, ami egyidejűleg akkufeszültség figyelést is végez. Holnap csatolom a rajzát, csak meg kell keresnem.
Sziasztok!
Végre van egy kis sikerélményem. Sikerült 10F206 al megoldanom a múltkorihoz hasonló feladatot (#177159). Tényleg nem kell ehhez megszakítás. A megoldást a polling hoz (jó tanárhoz méltóan) nem adtátok a számba, ezért kiszenvedtem. Tehát a pollozáshoz a BTFSS / BTFSC utasítások használatosak, ha nem értettem félre semmit.(?) Ez olyasmi mint a megszakítás csak a főprogram futása nem áll meg hanem a következő utasítás átugrásával csak pl máshol folytatható. A ugrás feltétele a pollozott bit állapota. A 10F el viszont megszenvedtem mert bizonyos regiszterei (pl. TRIS, OPTION) elég furmányosan használhatók. Ha a W ből próbáltam feltölteni értékkel akkor valamiért nem működött a dolog. Végül az adatlap segített. A W helyett az értéket a GPIO ból kell a regiszterekbe íratni. Most neki állok a mikrofonos kütyünek is, remélem estére beszámolhatok a sikerekről... Köszönöm |
Bejelentkezés
Hirdetés |