Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   441 / 1210
(#) Frankye válasza Hilo hozzászólására (») Aug 18, 2013 /
 
Idézet:
„Ha a PIC rövidzár miatt 9V ot kap azonnal halott?”

Jó eséllyel igen. Általában 5,5 V-ot viselnek el, abszolút maximumként a bemenetükön.
(#) Hilo válasza Frankye hozzászólására (») Aug 18, 2013 /
 
Ha a korábban beleégetett program fut rajta rendesen de a PicKit2 nm ismeri fel akkor az nem rövidzár volt, jól sejtem?
(#) Hilo hozzászólása Aug 18, 2013 /
 
Köszönöm a segítséget, közben megoldódott a probléma.
(#) univerzum hozzászólása Aug 20, 2013 /
 
Üdv, egy olyan szerkezetet szeretnék mely ilyen jel alakot generál le:

1:0000000000000001
2:0000000000000010
3:0000000000000100
4:0000000000001000
5:0000000000010000
6:0000000000100000
7:0000000001000000
8:0000000010000000
9:0000000100000000
10:0000001000000000
11:0000010000000000
12:0000100000000000
13:0001000000000000
14:0010000000000000
15:0100000000000000
16:1000000000000000
17:vissza az elejére.
Lenne rajta egy potméter, mellyel a sebességet lehetne állítani és 3 7 szegmens kijelző, melyen meg kiírná a sebességet (bit per min)
+egy start és egy stop gomb
Valaki tudna-e egy ilyenbe segíteni?
(#) kissi válasza univerzum hozzászólására (») Aug 20, 2013 /
 
Mit írtál meg belőle, hol akadtál el ? Egyáltalán milyen kontrollerre gondoltad, kapcsolási rajz ?

Ha munkát akarsz adni, akkor az az apróhirdetések közé való !
A hozzászólás módosítva: Aug 20, 2013
(#) moltam válasza univerzum hozzászólására (») Aug 20, 2013 /
 
Helo.
PIC mindenképpen kell? 4017 kaszkád? Bár a kijelzős órajel generátort is meg kell oldani.
(#) univerzum válasza moltam hozzászólására (») Aug 20, 2013 /
 
Én is diszkrét elemekből akartam, de ez így kompaktabb lenne, feltéve hogy "informatika" mentes körülményekre törekszem, hiába hogy linuxozom.
Szóval maga a bpm számláló jó lenne, 1,5,9,13 lenne egy számlálandó bit. Menne egy adott bpm-en a sebesség és aszerint írná ki a bpm-et. Kihagytam, hogy sebességet is kellene tudni állítani 120-255 között valahogy.
Itt bukott el a diszkrét elemes megoldás, mert a sebességet sem tudnám pontosan beállítani, max hallás alapján. Egyébként moduláris szintihez akarok sequencert csinálni.
(#) icserny válasza moltam hozzászólására (») Aug 20, 2013 /
 
Idézet:
„PIC mindenképpen kell?”
Ebben a topikban feltétlenül!
(#) moltam válasza icserny hozzászólására (») Aug 20, 2013 /
 
És ki mondta, hogy ebben a topikban kell kibeszélni a tisztán logikai ic-s kapcsolást, ha az is megfelelő? ... Szerintem, hogy ne kelljen feleslegesen soklábú pic, kell a 4017 (vagy valami), Csak az órajelet kell piccel generálni neki. A hétszegmentsesekre mehet bcd ben a jel és akkor a kijelzőknek elég 4+3 láb. A 4017 nek meg 1 vagy ha menet közben resetelni is kell, 2.
(#) univerzum válasza moltam hozzászólására (») Aug 20, 2013 /
 
Jó jó, csak ha már van pic, akkor egy tokon belül mérnem lehetne az egész?
Minek agyonbonyolítani ttl/cmos kapukkal? Nem értem, egy Pic-en belül mérnem lehetne ez a jelgenerátor is?
(#) moltam válasza univerzum hozzászólására (») Aug 20, 2013 /
 
Ez csak egy ötlet volt a "lábpazarlás" elekerülése érdekében. Természetesen megoldható egy tokon belül is, ha úgy tartja az igény.
(#) univerzum válasza moltam hozzászólására (») Aug 20, 2013 /
 
Jó csak így meg pénzt pazarlunk
Amúgy diszkrét elemekkel csinálnám meg csak mire a bpm számlálót megcsinálom diszkrét elemekkel nem férne be az dobozba
(#) moltam válasza univerzum hozzászólására (») Aug 20, 2013 /
 
pl.:
CD4017: 64ft
16f877 40pin 2181ft, (hestore)
16f627: 18pin :962ft (hestore)
A hozzászólás módosítva: Aug 20, 2013
(#) univerzum válasza moltam hozzászólására (») Aug 21, 2013 /
 
Még midig pic-el olcsóbb szerintem.
(#) nedudgi válasza moltam hozzászólására (») Aug 21, 2013 /
 
A HEstore árlistája PIC ügyileg nem naprakész, hogy finoman fogalmazzak. A kifutó/kifutott PIC16F87x család nem jó összehasonlítási alap. Egy PIC16F886, illetve PIC16F887 áránál egyből más arányokat kapsz, főleg, ha beteszel a kosárba egy BCD-7szegmenses dekódert is.
(#) moltam válasza nedudgi hozzászólására (») Aug 21, 2013 /
 
Igazad van, így tényleg más a helyzet.
(#) Prome hozzászólása Aug 22, 2013 /
 
tudtok javasolni olyan picet amibe belefér valami beszédfelismerő?

A mondateleji nagybetű, NEM kiváltság, hanem kötelező elem!
A hozzászólás módosítva: Aug 22, 2013
(#) vilmosd válasza Prome hozzászólására (») Aug 22, 2013 /
 
A dsPIC33xxxx sorozatban kellene szetnezni. Vannak koztuk ami alkalmas erre a feladatra. Szoba johet meg a PIC32 sorozat is erre a celra. PIC32
(#) mps hozzászólása Aug 22, 2013 /
 
Sziasztok! Olyan problémám van, hogy itt ez a kódrészlet:
  1. void atalakit()
  2. {
  3.  
  4. #asm
  5.         clrf    (_BCD1)         ;(_BCD1) = 0
  6.         clrf    (_BCD2)         ;(_BCD2) = 0
  7.         clrf    (_BCD3)         ;(_BCD3) = 0
  8.         clrf    (_BCD4)         ;(_BCD4) = 0
  9.         clrf    (_BCD5)         ;(_BCD5) = 0
  10. T5      movlw   0x27    ;-10000 kölcsönig ismételve
  11.         subwf   (_BINH),w        
  12.         btfss   STATUS,0        
  13.         goto    T4      
  14.         movwf   (_BINH)          
  15.         movlw   0x10    
  16.         subwf   (_BINL),f        
  17.         btfss   STATUS,0        
  18.         decf    (_BINH),f        
  19.         incf    (_BCD5),f        
  20.         goto    T5      
  21. T4      movlw   0x03    ;-1000 kölcsönig ismételve
  22.         subwf   (_BINH),w        
  23.         btfss   STATUS,0        
  24.         goto    T3A      
  25.         movwf   (_BINH)          
  26.         movlw   0xE8    
  27.         subwf   (_BINL),f        
  28.         btfss   STATUS,0        
  29.         decf    (_BINH),f        
  30.         incf    (_BCD4),f        
  31.         goto    T4      
  32. T3A     movlw   0x01    ;-100 kölcsönig ismételve
  33.         subwf   (_BINH),w        
  34.         btfsc   STATUS,0        ;(_BINH) > 0 ?
  35.         goto    T3B     ;ha (_BINH) > 0
  36.         movlw   0x64    ;ha (_BINH) = 0
  37.         subwf   (_BINL),w        
  38.         btfss   STATUS,0        
  39.         goto    T2      
  40.         movwf   (_BINL)          
  41.         incf    (_BCD3),f        
  42.         goto    T3A      
  43. T3B     movlw   0x64    ;ha (_BINH) > 0
  44.         subwf   (_BINL),w        
  45.         btfss   STATUS,0        
  46.         decf    (_BINH),f        
  47.         movwf   (_BINL)          
  48.         incf    (_BCD3),f        
  49.         goto    T3A      
  50. T2      movlw   0x0A    ;-10 kölcsönig ismételve
  51.         subwf   (_BINL),w        
  52.         btfss   STATUS,0        
  53.         goto    T1      
  54.         movwf   (_BINL)          
  55.         incf    (_BCD2),f        
  56.         goto    T2      
  57. T1      movf    (_BINL),w       ;W = (_BINL)
  58.         movwf   (_BCD1)         ;(_BCD1) = (_BINL)
  59. #endasm
  60.  
  61. }

innen származik:a B verzió.
Az a gondom vele, hogy 800 és 1000 között teljesen értelmetlen dolgokat ad vissza. Sajnos az asm-hez nem nagyon értek, de érdekelne a hiba. Esetleg rosszul hívom meg?Azt így csinálom:
  1. BINL=ii&0b0000000011111111;
  2. BINH=((unsigned int)ii>>8)&0b0000000011111111;

Az ii egy unsigned int.
Előre is köszönöm a segítséget!
(#) silent15 hozzászólása Aug 22, 2013 /
 
Sziasztok, van olyan PIC ami 8 vagy 14 lábú, és tud USB-t kezelni?
Köszönöm!
(#) foxi63 válasza mps hozzászólására (») Aug 22, 2013 /
 
Szia!
Ha már C-ben programozol, akkor sokkal logikusabb abban megoldani a problémát. pl:
  1. // tárhely foglalás:
  2. unsigned char buf[6];
  3. // dekraláció:
  4. void alakit(unsigned int ,unsigned char *);
  5. //megvalósítás:
  6. void alakit(unsigned int szam,unsigned char *point)
  7. {
  8.         point[0]=0;point[1]=0;point[2]=0;point[3]=0;point[4]=0;
  9.         while(szam>=10000)
  10.         {
  11.                 point[0]++;szam-=10000;
  12.         }
  13.         while(szam>=1000)
  14.         {
  15.                 point[1]++;szam-=1000;
  16.         }
  17.         while(szam>=100)
  18.         {
  19.                 point[2]++;szam-=100;
  20.         }
  21.         while(szam>=10)
  22.         {
  23.                 point[3]++;szam-=10;
  24.         }
  25.        
  26.         point[4]=szam;
  27. }
  28. // meghívása:
  29.         alakit(0x7733,buf);

Az eredmény a bufferben van.Ha ascII kód kell ,akkor még minden elemhez hozzá kell adni 0x30-at.
üdv:Foxi
A hozzászólás módosítva: Aug 22, 2013
(#) Hp41C válasza foxi63 hozzászólására (») Aug 22, 2013 /
 
Ha már assembly betét, minek 16 .. 32 bites számokkal dolgozni:
  1. B2BCD2
  2.         LFSR    FSR0,DIGIT1             ; MAKE POINTER
  3.         MOVLW   .5
  4.         MOVWF   CNT
  5.  
  6. ; MIKE'S ROUTINE:
  7.  
  8. B2BCD3  MOVLW   0X33           
  9.         ADDWF   INDF0,F         ; ADD TO BOTH NYBBLES
  10.         BTFSC   INDF0,3         ; TEST IF LOW RESULT > 7
  11.         ANDLW   0XF0            ; LOW RESULT >7 SO TAKE THE 3 OUT
  12.         BTFSC   INDF0,7         ; TEST IF HIGH RESULT > 7
  13.         ANDLW   0X0F            ; HIGH RESULT > 7 SO OK
  14.         SUBWF   INDF0,F         ; ANY RESULTS <= 7, SUBTRACT BACK
  15.         INCF            FSR0L,F         ; POINT TO NEXT
  16.         DECFSZ  CNT
  17.         GOTO    B2BCD3
  18.        
  19.         RLCF            BIN4,F          ; GET ANOTHER BIT
  20.         RLCF            BIN3,F
  21.         RLCF            BIN2,F
  22.         RLCF            BIN1,F
  23.         RLCF            DIGIT5,F                ; PUT IT INTO BCD
  24.         RLCF            DIGIT4,F
  25.         RLCF            DIGIT3,F
  26.         RLCF            DIGIT2,F
  27.         RLCF            DIGIT1,F
  28.         DECFSZ  II,F            ; ALL DONE?
  29.         GOTO    B2BCD2          ; NO, LOOP
  30.         RETLW   .0              ; yes

Ez ugyan 32 bites, de pillanatok alatt lehet átírni szinte minden szóhosszra, hagyományos midrange -re, advanced midrange -re.
Bővebben: Link
A hozzászólás módosítva: Aug 22, 2013
(#) mps válasza foxi63 hozzászólására (») Aug 22, 2013 /
 
Szia!
Igen, ez rendben is van, de amit nem írtam, az az, hogy próbálok egy kicsit az asm-el is foglakozni, bár nem biztos, hogy a legjobb módszer vissza felé csinálni Szóval a miért érdekelne, így igazából meg sem tudom érteni a működését.
Azért köszi!
(#) foxi63 válasza silent15 hozzászólására (») Aug 22, 2013 /
 
PIC16F1454
(#) mps válasza Hp41C hozzászólására (») Aug 22, 2013 /
 
Köszi! Átnézem!
(#) silent15 válasza foxi63 hozzászólására (») Aug 23, 2013 /
 
Köszönöm.
(#) nagzso hozzászólása Aug 23, 2013 /
 
Sziasztok!

Függvény/jel generátorokkal szeretnék megismerkedni, hogy hogy megy az előállításuk mikrokontrollerekkel. Olvastam, hogy lehet pl. PWM-mel, megszakításokkal. De sajnos nem tudom, hogy mi a legjobb megoldás, meg ha jól gondolom a PWM-mel csak négyszög jelet lehet(külső alkatrészek nélkül). Röviden és tömören, amit szeretnék, az a négy jel generálása mikrokontrollerrel, minden külső alkatrész nélkül. Ha ebben tudnátok segíteni vagy valami linket adni kiindulás pontnak, azt megköszönném.

Üdv: Zsolti
A hozzászólás módosítva: Aug 23, 2013
(#) Thowra válasza nagzso hozzászólására (») Aug 23, 2013 /
 
Üdv!
Suliba anno csináltunk sinus generátort pic el. Ott nem volt sok külső alkatrész, talán egy kondi meg ellenállás ha jól emlékszek. A PWM kitöltési idejével játszottunk, a kritikus a felbontás volt emlékeim szerint. egy régi, szerintem nem a végleges asm (txt be) mellékelve.

sin.txt
    
(#) usane hozzászólása Aug 24, 2013 /
 
Sziasztok!

Adott 1 pic18f45k20, egy mplabx 1.8 és az mpasm. Ha a 0x01-et balra forgatom, rlcf-el vagy rlncf-e ok. Elmegy 0x80-ig, onnan ha visszaforgatom jobbra akkor miért 1-est húz maga után?? Akár rrcf-el akár rncf-el forgatom a 0x80-ból 0xC0 lesz, abból E0, és így tovább.
Itt a kódrészlet:
  1. movlw 0x01
  2.     movwf LATD
  3.     movwf temp
  4. balra
  5.     rlncf temp
  6.     movff temp,LATD
  7.     call timing
  8.     movlw 0x80
  9.     subwf temp,WREG
  10.     bz jobbra
  11.     goto balra
  12. jobbra
  13.     rrncf temp
  14.     movff temp,LATD
  15.     call timing
  16.     movlw 0x01
  17.     subwf temp,WREG
  18.     bz balra
  19.     goto jobbra

Elnézést az ömlesztett kódért, sajna nem megy a tab-om és még nem volt időm kipucolni a billentyűzetet
A hozzászólás módosítva: Aug 24, 2013
(#) usane válasza usane hozzászólására (») Aug 24, 2013 /
 
Ha a munkaregben shiftelem jobbra akkor megy. Mit hagytam ki?
Következő: »»   441 / 1210
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