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   1209 / 1209
(#) Pali79 hozzászólása Vas, 21:34 /
 

HW PWM

Sziasztok!
Egy PIC18F67K40 típussal játszom. Szeretnék pwm-et beállítani, de sehogy sem akar működni. Már oda vissza átnyálaztam az adatlapot, de nem értem mit rontok el. A CCP1-et használnám, ami az RE5 láb. Betettem egy BTG-t az RE2 lábra, hogy lássam, fut a program. A kitöltési tényező és a periódus idő beállítása egyenlőre véletlenszerű.
  1. Setup
  2.         clrf    LATA    ;kimeneti portok törlése
  3.         clrf    LATB
  4.         clrf    LATC
  5.         clrf    LATD
  6.         clrf    LATE
  7.         clrf    LATF
  8.         clrf    LATG
  9.         clrf    LATH
  10.         clrf    PORTA   ;bemeneti portok törlése
  11.         clrf    PORTB
  12.         clrf    PORTC
  13.         clrf    PORTD
  14.         clrf    PORTE
  15.         clrf    PORTF
  16.         clrf    PORTG
  17.         clrf    PORTH
  18.         clrf    ANSELA  ;minden láb digitális
  19.         clrf    ANSELB
  20.         clrf    ANSELD
  21.         clrf    ANSELE
  22.         clrf    ANSELF
  23.         clrf    ANSELG
  24.         clrf    TRISA   ;minden láb kimenet
  25.         clrf    TRISB
  26.         clrf    TRISC
  27.         clrf    TRISD
  28.         clrf    TRISE
  29.         clrf    TRISF
  30.         clrf    TRISG
  31.         clrf    TRISH
  32.        
  33. HW_PWM
  34.         movlw   b'00100101'
  35.         movwf   RE5PPS
  36.         movlw   .200
  37.         movwf   T2PR
  38.         movlw   .125
  39.         movwf   CCPR2L
  40.         movwf   CCPR2H
  41.         movlw   b'10001100'
  42.         movwf   CCP1CON
  43.         movlw   b'00000001'
  44.         movwf   T2CLKCON
  45.         movlw   b'10000000'
  46.         movwf   T2CON
  47.  
  48. ;==================================================
  49. ;               Fő program
  50. ;==================================================
  51. Main
  52.         btg     LATE,2
  53.         nop
  54.         goto    Main
A hozzászólás módosítva: Vas, 21:40
(#) Bakman válasza Pali79 hozzászólására (») Vas, 22:12 / 1
 
RE5PPS. Adatlap szerint a CCP1 kódja 0b00000101 és nem 0b00100101. 0b00100101 = 0x25, ilyen számú periféria nincs, az utolsó a 0x21-es (ADGRDB).

CCP1-et akarsz használni de CCPR2L és CCPR2H van a kódban.

Nem látom, hol írod a CCPTMRS0 regisztert, CCP1 alapesetben Timer4-et használja PWM üzemmódban.
(#) Pali79 válasza Bakman hozzászólására (») Vas, 22:53 /
 
Átírtam, de így sem megy.
  1. HW_PWM_setup
  2.         movlw   b'00000101'
  3.         movwf   RE5PPS
  4.         clrf    CCPTMRS0
  5.         clrf    CCPTMRS1
  6.         movlw   .200
  7.         movwf   T2PR
  8.         movlw   .125
  9.         movwf   CCPR1L
  10.         movwf   CCPR1H
  11.         movlw   b'10001100'
  12.         movwf   CCP1CON
  13.         movlw   b'00000001'
  14.         movwf   T2CLKCON
  15.         movlw   b'10000000'
  16.         movwf   T2CON


Viszont közben lett egy másik probléma is. Beállítottam egy timer0 megszakítást, de ez sem működik. A szimulátor szerint a timer fut, de nem fut megszakításra, mert a bsf PIE0,TMR0IE nem hajtódik végre.

  1. TMR0_setup
  2.         movlw   b'00000000'
  3.         movwf   T0CON0
  4.         movlw   b'01000000'
  5.         movwf   T0CON1
  6.         bsf     INTCON,GIE
  7.         bsf     INTCON,PEIE
  8.         bsf     PIE0,TMR0IE
  9.         bcf     IPR0,TMR0IP
  10.         bsf     T0CON0,T0EN
Következő: »»   1209 / 1209
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