Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   149 / 1319
(#) szilva válasza Sendi hozzászólására (») Feb 9, 2008 /
 
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.
(#) gulasoft válasza Sendi hozzászólására (») Feb 9, 2008 /
 
mitől méregdrága egy nyák? Tudsz képet dobni róla, meg hogy mennyi volt?
(#) trudnai válasza Sendi hozzászólására (») Feb 9, 2008 /
 
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
(#) Sendi válasza gulasoft hozzászólására (») Feb 9, 2008 /
 
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

100_0859m.jpg
    
(#) Sendi válasza trudnai hozzászólására (») Feb 9, 2008 /
 
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
(#) szilva válasza Sendi hozzászólására (») Feb 9, 2008 /
 
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?
(#) Sendi válasza szilva hozzászólására (») Feb 9, 2008 /
 
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.
(#) AQLMGabor válasza potyo hozzászólására (») Feb 9, 2008 /
 
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?
(#) szilva válasza AQLMGabor hozzászólására (») Feb 9, 2008 /
 
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.
(#) potyo válasza AQLMGabor hozzászólására (») Feb 9, 2008 /
 
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.
(#) AQLMGabor válasza potyo hozzászólására (») Feb 9, 2008 /
 
Köszönöm potyo, szilva.
Szerintem most megértettem.

például 0x9B = -101d ?
(#) trudnai válasza AQLMGabor hozzászólására (») Feb 9, 2008 /
 
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...
(#) AQLMGabor válasza trudnai hozzászólására (») Feb 9, 2008 /
 
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.
(#) Braf hozzászólása Feb 9, 2008 /
 
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:
  1. osztas8
  2.         MOVLW 1
  3.         CLRF maradek
  4. loop
  5.         RLF osztando
  6.         RLF maradek
  7.         MOVF oszto,w
  8.         SUBWF maradek,w
  9.         skpnc   ;skip no carry makró
  10.         MOVWF maradek
  11.         RLF hanyados
  12.         bnc loop        ;ugrás ha no carry makró


Namost a skpnc helyére jó lessz egy
btfsc status, c ?

Illetve a bnc helyére egy
btfss status, c
goto loop?
(#) potyo válasza Braf hozzászólására (») Feb 9, 2008 /
 
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.
(#) Braf válasza potyo hozzászólására (») Feb 9, 2008 /
 
Rendben köszönöm.
(#) potyo hozzászólása Feb 9, 2008 /
 
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.
(#) VrGakos hozzászólása Feb 9, 2008 /
 
Sziasztok!

A
Idézet:
„A processzorvezérelt zöldség tároló”
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.

main.c
    
(#) Topi válasza VrGakos hozzászólására (») Feb 9, 2008 /
 
Azért méri, hogy leálljon ha megakadt a ventillátor.
(#) VrGakos válasza Topi hozzászólására (») Feb 9, 2008 /
 
Ezt értem. De azt hogyan állapítja meg hogy mennyivel forog?
(#) Topi válasza VrGakos hozzászólására (») Feb 9, 2008 /
 
Az kit érdekel... Nem a sebesség a lényeg, hanem maga a forgás ténye.
(#) VrGakos válasza Topi hozzászólására (») Feb 9, 2008 /
 
De azt nehéz lenne megcsinálni C-ben?
(#) Topi válasza VrGakos hozzászólására (») Feb 9, 2008 /
 
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.
(#) VrGakos válasza Topi hozzászólására (») Feb 9, 2008 /
 
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.
(#) Topi válasza VrGakos hozzászólására (») Feb 9, 2008 /
 
Nem FOR, hanem timer.
(#) zzz hozzászólása Feb 9, 2008 /
 
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!
(#) Topi válasza zzz hozzászólására (») Feb 9, 2008 /
 
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.
(#) zzz válasza Topi hozzászólására (») Feb 9, 2008 /
 
Helló!

Ennyi elég volna?

input.gif
    
(#) potyo válasza zzz hozzászólására (») Feb 10, 2008 /
 
É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.
(#) menyus hozzászólása Feb 10, 2008 /
 
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
Következő: »»   149 / 1319
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