Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   693 / 1320
(#) peti13 hozzászólása Márc 3, 2010 /
 
Hali! Nem pont PIC-es téma, de pic programhoz kéne... Ha pl. a b'01001101' értéket össze adom a b'10110010'-értékkel akkor az eredmény b'11111111' lesz? :o Vagy ha nem akkor hogy kell a bináris értékeket számítani? Az a kettes számrendszerben van, ha nem tévedek... Csak pontosan, hogy is van? x) Üdv!
(#) icserny válasza peti13 hozzászólására (») Márc 3, 2010 /
 
Ugyanúgy megy az összeadás, mint a tízes számrendszerben, csak az átvitel most nem 9+1-nél, hanem 1+1-nél keletkezik.
(#) watt válasza peti13 hozzászólására (») Márc 3, 2010 /
 
Aki akar és keres, az talál. Számrendszerek
(#) peti13 válasza watt hozzászólására (») Márc 3, 2010 /
 
Óó pedig komolyan rámentem Wikipériára... De valami mást találtam... Nha mind... Szerintem megértettem... Csak ellenőrzés képpen, akkor pl. a bináris 8 az a 0001? És a picben ugye 8 bitesen kell megadni ergó b'00010000' ?
(#) potyo válasza peti13 hozzászólására (») Márc 3, 2010 /
 
Vedd elő a windows kalkulátort, abban lehet binárisan is számolni.
(#) peti13 hozzászólása Márc 3, 2010 /
 
De az rossz mert nem lehet nullával kezdeni... és akkor pl a 00100101-et hogy írod be?
(#) potyo válasza peti13 hozzászólására (») Márc 3, 2010 /
 
Képzeld oda. 17-et sem úgy írjuk le, hogy 00000017, hanem tudjuk, hogy elé bármennyi nulla odaírható.
(#) watt válasza peti13 hozzászólására (») Márc 3, 2010 /
 
Idézet:
„Csak ellenőrzés képpen, akkor pl. a bináris 8 az a 0001?”

Nem. Ez nem több mint 1.
Minden számrendszerben jobb oldalon állnak a kisebb helyiértékek! Nézd meg a belinkelt forrásban milyen helyiértékek vannak a kettes számrendszerben! Ne haragudj meg, de ez általános iskolai anyag!
(#) peti13 válasza potyo hozzászólására (») Márc 3, 2010 /
 
Hát de a 001 az 4 de a 1 az meg 1... nem mindegy hogy van-e előtte nulla... Másik kérdésem, hogy 16F677nél a portokat hogy kell digitálissá tenni?
  1. MOVLW 0x06
  2. MOVWF ADCON1

Ez a porta-t csinálja digitálissá.. és a többihez milyen érték kell? Vagy ha nyomógombot rakok rá akkor nem kell digitálissá csinálni?
(#) potyo válasza peti13 hozzászólására (») Márc 3, 2010 /
 
A 001 az nem 4, hanem 1. De ne itt tanuljuk már meg a számrendszerek alapjait...


Benne van az adatlapban, hogy mivel lehet állítani, csak ki kell keresni.
(#) gydanee válasza peti13 hozzászólására (») Márc 3, 2010 /
 
Bináris számrendszerből a legegyszerűbben úgy tudsz átírni hogy jobbról balra felírod a 2 hatványait, majd ahol 1 van ott azt az értéket összeadod.
pl.:
128 64 32 16 8 4 2 1
0 1 0 1 0 1 0 1
Szóval 1+4+16+64=85
Azaz a 01010101 tizes számrendszerbe átszámolva 85
(#) peti13 válasza gydanee hozzászólására (») Márc 3, 2010 /
 
Jah hogy úgy... Én növekvő sorrendben írtam fel a számokat És elnézést kérek, hogy ilyeneket kérdeztem... Inkább többet keresgélek és csak legutoljára kérdezem meg itt...
(#) watt válasza peti13 hozzászólására (») Márc 3, 2010 /
 
Idézet:
„csak legutoljára kérdezem meg itt...”

Inkább ne itt. Van erre egy kezdőknek szóló topic!
(#) peti13 válasza watt hozzászólására (») Márc 3, 2010 /
 
Az oldalra gondoltam...
(#) cNobody hozzászólása Márc 4, 2010 /
 
Sziasztok!
Megint én Mindkét PK2 klón működik tökéletesen

Viszont
Van egy 18F1320-as és egy 18F4550-es PIC-em.
Eddig a 1320-assal gyakorolgattam. Ment is minden, amit csináltam vele. Gondoltam előveszem a nagy testvért és azzal próbálkozok, de egyszerűen nem akar elindulni.

Mindkét táplábat bekötöttem, és van 100nF is, mindkettőn. Az MCLR-t 10k-val a tápra kötöttem. 40 MHz kristály 15p-val a földre.
MikroC-ben programozok. Írtam rá egy egyszerű programot, ami a PORTB-t ki-be kapcsolgatja (LED). A 1320-ason megy is, de a 4550 nem csinál semmit.

A 4550-hez kell még valamit raknom (hardverileg) hogy működjön? (PL: Vusb-re 400n vagy valami más) Esetleg szoftverileg, (valami beállítás)?

Üdv
(#) potyo válasza cNobody hozzászólására (») Márc 4, 2010 /
 
PORTB inicializálását nézd át az adatlapban.
(#) cNobody válasza potyo hozzászólására (») Márc 4, 2010 /
 
  1. ADCON0=0x00;     //A/D off
  2. ADCON1=0x0F;     //A/D portok digitálissá..
  3. TRISB=0x00;   //kimenet
  4. PORTB=0x00;
  5. while(1)
  6.      {
  7.          PORTB=~PORTB;   //invert
  8.          delay_ms(200);
  9.      }



Úgy gondolom, hogy így működnie kellene.
Vagy valami elkerülte a figyelmemet?
(#) trudnai válasza peti13 hozzászólására (») Márc 4, 2010 /
 
A tízes számrendszerben sem 0001- et írunk ezer helyett! Amúgy a számrendszerek és a számábrázolás off téma. Kb 5 másodperc kigooglizni amúgy is.
(#) trudnai válasza cNobody hozzászólására (») Márc 4, 2010 /
 
Mikor egy ilyen problémát felteszel, miért nem csatolod a kapcsi rajzot meg a forrást és akkor látnánk mi van, nem kellene hosszan magyarázni mit hová kötöttel stb. Forrásban is látnánk pl hogy állítottad be a PLL-t pl. Na mindegy, nem az én gondom, csak nem értem miért nem készíted elő a kérdést, hogy gyorsabban kaphass választ rá?
(#) watt válasza cNobody hozzászólására (») Márc 4, 2010 /
 
Csatold az egész forrást! Valószínű nem jól állítod be az oszcit!
(#) icserny válasza cNobody hozzászólására (») Márc 4, 2010 /
 
Idézet:
„40 MHz kristály 15p-val a földre.”

Ehhez nem könnyű megtalálni a megfelelő beállítást.
  1. #pragma config PLLDIV = 10     //Divide by 10 (40 MHz oscillator input)
  2. #pragma config CPUDIV = OSC1_PLL2   //CPU clock =96 MHz PLL/2
  3. #pragma config USBDIV = 2  //USB clock: 96 MHz PLL/2
  4. #pragma config FOSC = HSPLL_HS  //HS oscillator, PLL enabled, HS used by USB


A többi már megyezhet a "szokványos" beállításokkal. Például így:
  1. #pragma config FCMEN    = OFF       // Fail Safe Clock Monitor tiltása
  2.         #pragma config IESO     = OFF       // Belső/külső oszcillátor tiltása
  3.         #pragma config PWRT     = ON        // Bekapcsoláskor 62 ms várakozás
  4.         #pragma config BOR      = ON        // Brown our Reset engedélyezve
  5.         #pragma config BORV     = 1         // Reset szint = 2,7 V
  6.         #pragma config VREGEN   = ON        // VUSB belső stabilizátorról megy
  7.         #pragma config WDT      = OFF       // Watchdog timer letiltva
  8.         #pragma config WDTPS    = 32768     // Watchdog utószámláló beállítása
  9.         #pragma config MCLRE    = ON        // MCLR (reset) bemenet engedélyezve
  10.         #pragma config LPT1OSC  = OFF       // T1OSC nagyobb teljesítményű üzemmód
  11.         #pragma config PBADEN   = OFF       // PORTB<4:0> digitális I/O-ként inicializálódik
  12.         #pragma config CCP2MX   = ON        // RC1 legyen a CCP2 kimenet
  13.         #pragma config STVREN   = ON        // A verem túlcsordulása RESET-et okoz
  14.         #pragma config LVP      = OFF       // Alacsonyfeszültségű programozás letiltva
  15.         #pragma config ICPRT    = OFF       // Dedikált programozói kivezetés nincs
  16.         #pragma config XINST    = OFF       // Extended Instruction Set
  17.         #pragma config DEBUG    = OFF       // Háttér nyomkövetés letiltva, RB6/7 normál I/O
  18.         #pragma config CP0      = OFF       // Kódvédelem kikapcsolva
  19.         #pragma config CP1      = OFF
  20.         #pragma config CP2      = OFF
  21.         #pragma config CP3      = OFF
  22.         #pragma config CPB      = OFF
  23.         #pragma config CPD      = OFF
  24.         #pragma config WRT0     = OFF      // Írásvédelem kikapcsolva
  25.         #pragma config WRT1     = OFF
  26.         #pragma config WRT2     = OFF
  27.         #pragma config WRT3     = OFF
  28.         #pragma config WRTB     = OFF      // Boot Blokk írásvédelem kikapcsolva
  29.         #pragma config WRTC     = OFF
  30.         #pragma config WRTD     = OFF
  31.         #pragma config EBTR0    = OFF      // Táblázatolvasás ne legyen letiltva
  32.         #pragma config EBTR1    = OFF
  33.         #pragma config EBTR2    = OFF
  34.         #pragma config EBTR3    = OFF
  35.         #pragma config EBTRB    = OFF      //
(#) gulasoft hozzászólása Márc 4, 2010 /
 
Előző hét pénteken voltam chipcad-es tcp/ip tanfolyamon. Nagyon ütős volt. Csináltunk webszervert is. Az explorer 16-os boardot használtuk + egy kis plugin boardot, mivel a pic24fj128ga010-ben nincs implementálva az ethernet vezérlő.
spi buszon kommunikált a vezérlővel.
Szerintem akinek ilyen feladat kell, az menjen el nyugodtan, mert hasznos volt a tanfolyam. A tanfolyami anyagot megkaptuk cd-n, nem merem felrakni mert szerintem szerzői jogokat sértene, de hasznos.

Én szünetben gyorsan vettem egy vezérlőt, hát 8000Ft volt, többet nem veszek, mert ha kell megépítem, de a gyakorláshoz muszáj, a héten átrágom magam újra rajta, hogy ne felejtsem el, és addig nincs időm másikat építeni. Mindenesetre baromi jó.


9-kor kezdtük 17h-kor volt vége. Délben volt egy kajaszünet, egyik kézzel kajáltunk, másikkal telepítettük a saját gépre a stacket, meg a többit, és délután volt még egy 10 perces szünet.
(#) potyo válasza icserny hozzászólására (») Márc 4, 2010 /
 
Idézet:
„Ehhez nem könnyű megtalálni a megfelelő beállítást.”


Ráadásul az adatlapban csak 25MHz-es kvarcig garantálják a kvarc meghajtását. Szóval nemis biztos, hogy a 40MHz-es kvarccal egyáltalán el fog indulni az oszcillátor vagy stabilan tud működni.
(#) Shoo hozzászólása Márc 4, 2010 /
 
Hali!

PIC-nek az a/d bemeneteit szeretném fesz. mérésre használni, nagyon max. 5 voltot kellene mérni. A gondom az lenne, hogy akkuk feszültségét kellene mérni, amiből több van sorba kötve és szeretném 1 PIC-kel mérni őket. Hogy lehetne megvalósítani?
(#) watt válasza Shoo hozzászólására (») Márc 4, 2010 /
 
Kérlek próbáld meg érthetően megfogalmazni mit szeretnél!
(#) Shoo válasza watt hozzászólására (») Márc 4, 2010 /
 
Igyekszem, remélem így érthetőbb lesz.
Lenne 3 lithium akkum sorba kötve. Ezeknek a feszültségét szeretném mérni 1 darab PIC-kel, de nem az egészét, hanem minden darabét külön. Létre lehet hozni egy ilyen kapcsolást egyszerűen?
(#) szilva válasza Shoo hozzászólására (») Márc 4, 2010 /
 
Ez nem feltétlenül PIC-es kérdés. A PIC-kel bármilyen feszültséget meg tudsz mérni a saját tápfeszültségtartományán belül, a mérendőket erre a tartományra kell tehát átalakítani.

Ha jól gondolom, és mondjuk 3.6V-os cellákból van 3 sorban, akkor az már nagyobb, mint az 5V, tehát valamit kell vele kezdeni. Erre több megoldást is ki lehet találni, például:

- A legegyszerűbb, hogy megfelelő osztásarányú feszültségosztókkal leosztod a cellák öszekapcsolási pontján mérhető feszültségeket; az első ponton lévőt nem kell osztani, a másodikon lévőt kettővel, a harmadikon (a cellasor "legtetején") lévőt pedig hárommal osztva mindegyik feszültség megmérhető a PIC-kel. Ezután már csak a PIC-ben futó programban kell visszaszámolni az osztás előtti valódi értékeket és ezeket egymásból kivonva meg lehet a cellák kapocsfeszültségét külön-külön határozni.

- Egy bonyolultabb megoldásban lehet pl. műveleti erősítőkből kialakított különbségképző áramköröket alkalmazni, majd a cellák kapcsfeszültségével arányos jeleket közvetlenül a PIC-be lehet vezetni, és egyenként megmérni azokat.

Tehát itt elsősorban az analóg részt kell jól megtervezni, aztán a PIC programját ehhez igazítani. Kérdés a szükséges pontosság és a még megengedhető bonyolultság.
(#) Shoo válasza szilva hozzászólására (») Márc 4, 2010 /
 
Köszi szépen, ilyenre gondoltam!
Valószínű a feszosztós megoldást választom, mert nem egészen olyan egyszerű a kapcsolás, mint amit leírtam. 3 sorba kapcsolt akku van viszont 1-1-el még 10-12 darab van párhuzamosan kötve. Akkufelügyeletet szeretnék készíteni belőle, tehát a PIC-nek csak 2 szintet kell figyelnie. Tehát akkor az első cellánál csak rá kell kötnöm, a másodiknál 1:1 arányú ellenállást betenni és a harmadiknál 2:1 arányút. Ha ez igy stimmel akkor már csak a cellákkal sorba kötött mosfet gate-jére kéne valahogy 10 voltot kapcsolni. Ebbe tudna valaki segíteni?
Plusz, ha a sorba kötött fet Rds(on)-on átfolyó áramot szeretném megmérni, akkor az jó megoldás, ha feszosztót teszek a drain és az eredeti nulla pont közé, meg a source és nulla közé és, ha a két értéket kivonom egymásból és megszorzom Rds(on)-nal akkor az megadná nem?
(#) szilva válasza Shoo hozzászólására (») Márc 4, 2010 /
 
Jobb lenne, ha valami skiccet készítenél az elképzelésedről, mert elég nehéz így bármit mondani, nem is igazán látom át, hogy hogy képzelted el. Az Rds(on) pedig nem konstans, mindenfélétől függ, így erre nem használható, kell egy fix, ismert értékű áramfigyelő ellenállást sorbatenni a FET-tel, és azon mérni a feszültséget.
(#) Shoo válasza szilva hozzászólására (») Márc 4, 2010 /
 
Nahh itt egy gyors skicc, tudom nincs bekötve a pic, de az most nem lényeg, sajna a fethez nem elég az 5 volt, kb 10 voltot kellene rákapcsolni a gate-re, tehát az az ellenállás nem elég oda, valami más kell és nincs ötletem, hogy ilyen formában mit lehetne odatenni.
Következő: »»   693 / 1320
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