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   396 / 1210
(#) kissi válasza siemenstaurus hozzászólására (») Ápr 3, 2013 /
 
C-ben szerintem simán
  1. 1. if (regi<uj) { .... }
  2. 2. else if ( regi==uj) { .... }
  3. 3. else { ... }
(#) icserny válasza Doky586 hozzászólására (») Ápr 3, 2013 /
 
Idézet:
„lehet hogy ilyen ICP02v2-t veszek én is”

Az ICP02V2 beszerzését ne kapkodja el senki!!! Várjatok még egy kicsit!

Nekem eddig még nem sikerült Debug módba lépni vele. Igaz, nem volt túl sok időm játszadozni vele, s lehet, hogy több MPLAB verziót is ki kellett volna próbálni.

Egyelőre csak a programozás terén volt vele sikerélményem...
(#) Balagemann2031 hozzászólása Ápr 3, 2013 /
 
Sziasztok! Egy kis segítséget szeretnék kérni! Adott egy 6 digites pic-es óra áramkör hardvere! Szeretném megírni hozzá a működtető programot, de a kusza áramköri elrendezések miatt, kissé bonyolult... A problémám az, hogy egy 16F628A portjai vegyesen lettek felhasználva, tehát ami logikus tervezés szerint egy porton lenne (pl: a szegmensek vezérlése: a,b,c,d,e,f,g,h) addig, itt fele az "A" portra fele a "B" portra van kötve! Bemenetek ugyan így vegyesen "A" és "B" portra. Assemblyben programozok, de nem tudom hogy oldjam meg a számjegyek kijelzését táblázattal.
Van más megoldás, mint hogy 2 táblázatból rakjam össze 1 számjegy kódját? Vagy át lehetne definiálgatni a portok kimenetét, hogy egy táblázatban tárolni tudjam a számjegy bitképét? Előre is köszi minden ötletet! Üdv! Balázs
(#) Hp41C válasza Balagemann2031 hozzászólására (») Ápr 3, 2013 /
 
Hogyan sikeredett a bekötés?
(#) Balagemann2031 válasza Hp41C hozzászólására (») Ápr 3, 2013 /
 
Szia! Csatoltam a rajzot!

szamlalo.jpg
    
(#) Hp41C válasza Balagemann2031 hozzászólására (») Ápr 3, 2013 / 1
 
A táblázatot az alábbiak szernit készítsd el:
  1. ToSegments:
  2.               addfw  PCL,f
  3. ;                      -bafgcde
  4. Segments:
  5.               dt     b'01110111'   ;0
  6.               dt     b'01000100'   ;1
  7.  ...


A rutin, ami átalakítja a számjegyet szegmens vezérléssé (a WREG -ben a számjegy értéke)
  1. call ToSegments
  2.        movwf Temp
  3.        xorwf PORTA,w
  4.        andlw 0x0F
  5.        xorwf PORTA,f
  6.        swapf Temp,w
  7.        xorwf PORTB,w
  8.        andwf 0x07
  9.        xorwf PORTB,f
A hozzászólás módosítva: Ápr 3, 2013
(#) Balagemann2031 válasza Hp41C hozzászólására (») Ápr 3, 2013 /
 
Nagyon szépen köszönöm! Ötletes!
(#) Bendegúz hozzászólása Ápr 4, 2013 /
 
Sziasztok!

Sopron környékén tudna valaki 18f4550-be bootloadert programozni nekem? ( A PIC és a HEX megvan. )
(#) Poostmaster hozzászólása Ápr 5, 2013 /
 
Nem vezérel senki léptetőmotort PIC-el?
(#) brato válasza Poostmaster hozzászólására (») Ápr 5, 2013 /
 
A léptetőmotoros topicokban van szó pices vezérlésről is.
(#) kissi válasza Poostmaster hozzászólására (») Ápr 5, 2013 /
 
Ezt miből állapítottad meg ?!
(#) brato hozzászólása Ápr 5, 2013 /
 
Az egyik picbasic változatban van egy POT utasítás ami egy potméter állását adja meg.
Bekötésügyileg egy kondenzátor van testre kötve, vele sorba egy poti és ennek a vége bármely digitális potra köthető. Az érdekelne milyen módszerrel és programozással mérhető ez az adat.
A hozzászólás módosítva: Ápr 5, 2013
(#) tom75 hozzászólása Ápr 5, 2013 /
 
Adott egy pic program assemblyben van írva, szeretném kiegészíteni a programot egy üdvözlő üzenettel de nem tudok programozni. tudtok segíteni hogy induljak el?

Tamás
(#) kissi válasza brato hozzászólására (») Ápr 5, 2013 /
 
A kondenzátor töltődésének az idejét méri: induláskor kisüti a kondit, majd megnézi, hogy mikorra vált a lábon a szint '1'-re, a közben eltelt idő arányos a poti értékével !
(#) kissi válasza tom75 hozzászólására (») Ápr 5, 2013 /
 
Három lehetőséget látok: vagy megtanulsz programozni vagy felteszed a fórumba és valaki hátha segít, vagy teszel egy ajánlatot az apróhirdetésben !
(#) siemenstaurus hozzászólása Ápr 6, 2013 /
 
Sziasztok!
Próbálkozok próbálkozok, de még nem egészen úgy van ahogy szeretném. Ezzel a kóddal ha a poti balra fordul Cport 7.bit ad jelet villogva késéstől függően amíg fordul, ha jobbra 6.bit. Úgy szeretném hogy a szögelfordulás függvényében adjon jelet. Ha balra 33 fokonként egyik, jobbra 33 fokonként másik egy-egy rövid felvillanást. Hogyan kellene átírni az IF-en belül a két ágat?
Próbáltam felosztani a "skálát" de akkor megbolondult...
Ha van ötlet köszönöm előre is! Szép 7vgt!

  1. #include <p18f14k50.h>
  2. #include "adc.h"
  3. #include "delays.h"             //beepitett fuggv hasznalata
  4. #pragma config LVP = OFF
  5. #pragma config WDTEN = OFF
  6.  
  7. void Keses (unsigned int H);
  8.  
  9. main ()
  10. {
  11.         int i,j;
  12.         TRISC = 0;
  13.        
  14.         ADCON0 = 0b00101001;    //beallitasok a pdfben adc register definitions
  15.         ADCON1 = 0b00000000;
  16.         ADCON2 = 0b10101010;
  17.  
  18.  
  19. while(1)
  20.         {
  21.  
  22.  
  23.                 while (BusyADC())
  24.                 {}             
  25.  
  26.                 ADCON0bits.GO = 1;
  27.                
  28.                 i=ReadADC();                            // i = analóg értékkel
  29.                 Delay1KTCYx(15);                     // várunk
  30.        
  31.                 j = ReadADC();                         // j = új analóg értékkel
  32.                
  33.                 if (j >` i+2)                              // ha az uj nagyobb mint a régi +2
  34.                         {
  35.                
  36.                                 LATC = 0b00000001;
  37.                                 Delay1KTCYx(60);
  38.                                 LATC = 0b00000000;
  39.  
  40.                         }      
  41.                
  42.  
  43.                 else if (j < i-2)                                    //ha az uj kisebb mint a régi-2
  44.                         {
  45.                                 LATC = 0b00000010;
  46.                                 Delay1KTCYx(60);
  47.                                 LATC = 0b00000000;     
  48.                        
  49.                         }
  50.  
  51.                 i = j;
  52.         }
  53.  
  54.  
  55. }
(#) Lozsa hozzászólása Ápr 6, 2013 /
 
Sziasztok!

Éleszteném az áramkörömet, de nem akarja az ICD2 látni
Nem lehet, hogy a CC2 kondi miatt ellapul a PGD-n a jel?
Azon a lábon amúgy az áramkör az akku feszültségét méri A/D-n.

eagle.png
    
(#) pjg válasza Lozsa hozzászólására (») Ápr 6, 2013 /
 
Forraszd ki a kondit, kiderül.
(#) icserny válasza Lozsa hozzászólására (») Ápr 6, 2013 /
 
Idézet:
„Nem lehet, hogy a CC2 kondi miatt ellapul a PGD-n a jel?”
Nem "lehet", hanem biztos.
(#) tom75 hozzászólása Ápr 7, 2013 /
 
Sziasztok!
Mikro c-ben, hogy lehet a komparátort kikapcsolni p16f877-nél.
(#) Hp41C válasza tom75 hozzászólására (») Ápr 7, 2013 /
 
ADCON1 = 7;
(#) aroxol hozzászólása Ápr 8, 2013 /
 
Sziasztok!

Az alábbi kódban szeretném a 19200-at átirni 2400-ra, mert a vezeték nélküli ado-vevo nem tud többet. Kalkulátor sajnos too low-t ir. Esetleg valakinek ötlete? A proci pic18 12mhz kvarcal.
  1. MOVLW B'10010000'
  2.         movwf RCSTA1
  3.         movlw b'00100100'
  4.         movwf TXSTA1
  5.         movlw .25                                       ;115200 baudrate
  6.         movwf SPBRG1
  7.         movlw b'00001010'
  8.         movwf BAUDCON1
  9.         clrf SPBRGH1
  10.         clrf RCREG1
  11.         CLRF TXREG1
  12.         BCF PIR1,5
  13.         BCF PIR1,4
  14.         clrf RCREG1                    
  15.  
  16.  
  17.  
  18.         MOVLW B'10000000'
  19.         movwf RCSTA2
  20.         movlw b'00100100'
  21.         movwf TXSTA2
  22.         movlw .154                                      ; 19200 baudrate
  23.         movwf SPBRG2
  24.         movlw b'00000000'
  25.         movwf BAUDCON2
  26.         clrf SPBRGH2
  27.         clrf RCREG2
  28.         CLRF TXREG2
  29.         BCF PIR3,5
  30.         BCF PIR3,4
  31.         clrf RCREG2
  32.         clrf TXREG2
(#) Llajti válasza aroxol hozzászólására (») Ápr 8, 2013 /
 
Szia!

Nem írtad milyen mcu-ról van szó. Típustól függően a TXSTA BRGH bitjével és a BAUDCON(1) BRG16 (bár ettől 16 bites lesz, nem 8) bitjével lehet még osztani a sebességet.
(#) aroxol válasza Llajti hozzászólására (») Ápr 8, 2013 /
 
Szia!
PIC18F46k22. Tudnád egy kicsit konkrétabban leirni? Igy csak 14400-ig tudok lemenni.
A hozzászólás módosítva: Ápr 8, 2013
(#) Llajti válasza aroxol hozzászólására (») Ápr 8, 2013 /
 
TXSTA2 2. bitje: 00100100 helyett 00100000, ekkor
a sebesség FOSC/[64 (n+1)] ezzel kell újraszámolni az SPBRGH-L regisztereket (nem tudom, milyen kalkulátort használsz, de valószínűleg ki fogja írni, ha átállítod a BRGH-t).
Egy kis segítség:
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en547757
280-283. oldal
(#) aroxol válasza Llajti hozzászólására (») Ápr 8, 2013 /
 
Köszönöm a segitséged, és hogy foglalkozol a problémámmal. 2 kalkulátort probálok, ha minden igaz 77 jön ki.
(#) Llajti válasza aroxol hozzászólására (») Ápr 8, 2013 /
 
Nm. Egész jó kis kalkulátorok ezek, lehet, hogy még én is használni fogom, ha baud rate kell
Írd csak be a 77-et, szinte biztosan jó lesz!
(#) aroxol válasza Llajti hozzászólására (») Ápr 8, 2013 /
 
Egészségedre, köszönöm a segítséget, tökéletes!
(#) benjami válasza Llajti hozzászólására (») Ápr 8, 2013 /
 
C-ben esetleg az előfordítót is használhatod kalkulátornak (16 bites UART osztó):
  1. // megadjuk a CPU órajelét és a kívánt BAUDRATE-ot
  2. #define  CpuClock  12000000
  3. #define  UARTBAUDRATE  2400
  4.  
  5. // UART forrásórajele (az 1UL azért kell hogy 32 bitesen számoljon)
  6. #define UartSrcClock (1UL*CpuClock/4)
  7.  
  8. // ennyivel kell osztani az UART forrásórajelét, az 1 bitnyi időhöz
  9. #define UARTDIV ((UartSrcClock+UARTBAUDRATE/2)/UARTBAUDRATE)
  10.  
  11. // baudrate regiszter számítás
  12. #if UARTDIV < (65536)
  13. #define BRG_DIV         1
  14. #define UARTCLKSEL      1
  15. #elif UARTDIV < (65536*4)
  16. #define BRG_DIV         4
  17. #define UARTCLKSEL      0
  18. #else  // UARTDIV
  19. #error "Ez a BAUDRATE nem előállítható"
  20. #endif // UARTDIV
  21. #define UARTBAUDRATEREG ((UartSrcClock+((BRG_DIV/2)*UARTBAUDRATE))/BRG_DIV/UARTBAUDRATE-1)
  22.  
  23. // Ez a rész kerüljön be az UART inicializálásba
  24. TXSTAbits.BRGH = UARTCLKSEL;     // órajel előosztó
  25. BAUDCONbits.BRG16 = 1;           // 16 bites osztó
  26. SPBRG = UARTBAUDRATEREG;         // osztó
  27. SPBRGH = UARTBAUDRATEREG >> 8;   // osztó
(#) korni.papp hozzászólása Ápr 8, 2013 /
 
Sziasztok.
A kérdésem a következő:Tudtok valami linket vagy leírást adni a pic-ről?Kb semmit nem tudok róluk. Van egy kis pic-es elektronikai kosérletező készletem. Előre is köszönöm.
Következő: »»   396 / 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