Hwpw


+ Reply to Thread
Results 1 to 2 of 2

Thread: Hwpw

  1. #1
    Join Date
    Aug 2009
    Location
    Paso Robles California
    Posts
    156

    Question Hwpw

    Im running a few chips 16f876a at 20 mhz, 18f26k22 10mhz with 4x speed so 40mhz

    Even using timer 1 and timer 2 with two different ports, portc1 and portc2 you can not get two different PW is this correct

    I have also noticed at times one pulse is half the duty cycle other times it can be changed this could be because i used the same timer for both

    define OSC 40

    OSCCON2.7 = 1 ' SYSTEM CLOCK 1=4XPLL 0= OSCILLATOR OTHER THAN 4XPLL
    TRISA = %11111010
    TRISB = %11111100
    ADCON1 = %0110
    ADCON0 = %000

    T0CON = %00000000
    INTCON = %00000000
    INTCON2 = %00000000

    LED VAR PORTA.5 ' Assign name "LED" to PORTA.5
    HIGH LED
    PAUSE 2000
    LOW led
    PWM PORTA.5, 64, 6000

    DEFINE CCP1_REG PORTC ' USED FOR HWPW
    DEFINE CCP1_BIT 2 ' USED FOR HWPW PORTC PIN 2
    DEFINE HPWM2_TIMER1 ' DEFINE TIMER USE FOR PWM

    DEFINE CCP2_REG PORTC ' USED FOR HWPW
    DEFINE CCP2_BIT 1 ' USED FOR HWPW PORTC PIN 1
    DEFINE HPWM1_TIMER2 ' DEFINE TIMER USE FOR PWM

    HPWM 1, 128, 5000 ' OUTPUT PORTC.2
    'HPWM 2, 64, 5000 ' OUTPUT PORTC.1

    ' HPWM 1, 128, 39000 ' HIGHEST HPWM @ 50% DUTY 78.06 khz
    ' HPWM 1, 128, 30000 ' HPWM @ 50% DUTY 60.19 khz
    ' HPWM 1, 128, 20000 ' HPWM @ 50% DUTY 39.96 khz
    ' HPWM 1, 128, 10000 ' HPWM @ 50% DUTY 19.98 khz
    ' HPWM 1, 128, 5000 ' HPWM @ 50% DUTY 9.99 khz
    ' HPWM 1, 128, 2441 ' LOWEST HPWM @ 50% DUTY 4.88 khz
    Last edited by l_gaminde; Yesterday at 17:30.

  2. #2
    Join Date
    May 2013
    Location
    australia
    Posts
    2,636


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    a pic18f26k22 can have 5 different pwm streams with 3 different frequencies all with individual duty cycles, old clunker chips like 16f876a are much less capable of course

    here is 3 streams 3 frequencies
    i find the hpwm command pretty inflexible and seldom use it [the clock defines are not correct in mho] , pwm is not difficult to setup manually



    Code:
    '****************************************************************
    '*  Name    : PWM demo.pbp                                      *
    '*  Author  :  Richard                                          *
    '*  Notice  :                                                   *
    '*          :                                                   *
    '*  Date    : 21/12/2024                                        *
    '*  Version : 1.0                                               *
    '*  Notes   : TMR2 CCP4 10K, TMR4 CCP5 12.5K,  TMR6 CCP1 8K     *
    '*          :18f26k22 @64Mhz                                    *
    '****************************************************************
    
    
    
    
    #CONFIG
      CONFIG  FOSC = INTIO67
      CONFIG  PLLCFG = ON
      CONFIG  PRICLKEN = ON
      CONFIG  FCMEN = OFF
      CONFIG  IESO = OFF
      CONFIG  PWRTEN = ON
      CONFIG  BOREN = SBORDIS
      CONFIG  BORV = 190
      CONFIG  WDTEN = ON
      CONFIG  WDTPS = 32768
      CONFIG  CCP2MX = PORTC1
      CONFIG  PBADEN = OFF
      CONFIG  CCP3MX = PORTB5                                
      CONFIG  T3CMX = PORTC0
      CONFIG  HFOFST = ON
      CONFIG  P2BMX = PORTB5
      CONFIG  MCLRE = EXTMCLR
      CONFIG  STVREN = ON
      CONFIG  LVP = OFF
      CONFIG  XINST = OFF
      CONFIG  DEBUG = OFF
      CONFIG  CP0 = OFF
      CONFIG  CP1 = OFF
      CONFIG  CP2 = OFF
      CONFIG  CP3 = OFF
      CONFIG  CPB = OFF
      CONFIG  CPD = OFF
      CONFIG  WRT0 = OFF
      CONFIG  WRT1 = OFF
      CONFIG  WRT2 = OFF
      CONFIG  WRT3 = OFF
      CONFIG  WRTC = OFF
      CONFIG  WRTB = OFF
      CONFIG  WRTD = OFF
      CONFIG  EBTR0 = OFF
      CONFIG  EBTR1 = OFF
      CONFIG  EBTR2 = OFF
      CONFIG  EBTR3 = OFF
      CONFIG  EBTRB = OFF
    #ENDCONFIG  
        DEFINE OSC 64
        ANSELB=0
        ANSELC=0
        ANSELA=0
        trisa=% 11101111
        trisb=% 11111110
        trisc=% 11111001
        OSCCON=$70
        OSCTUNE.6=1
        
        T2CON=6         ;PRESCALE 16 TMR ON
        T4CON=6         ;PRESCALE 16 TMR ON
        T6CON=6         ;PRESCALE 16 TMR ON
        PR2=$63         ;10 KHZ
        PR4=$4F         ;12.5 KHZ
        PR6=$7C         ;8 KHZ
        CCP4CON = $0C   ;PWM MODE + DUTY LSB 2 BITS
        CCPR4L  = $32   ;DUTY MSB 8 BITS    
        CCP5CON = $0C   ;PWM MODE + DUTY LSB 2 BITS
        CCPR5L  = $27   ;DUTY MSB 8 BITS
        CCP1CON = $0C   ;PWM MODE + DUTY LSB 2 BITS
        CCPR1L  = $3E   ;DUTY MSB 8 BITS    
        CCPTMRS1  = 4   ;TMR2 CCP4, TMR4 CCP5
        CCPTMRS0  = 2   ;TMR6 CCP1 
    
    
    main:
    goto main
    Warning I'm not a teacher

Members who have read this thread : 2

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts