Hwpw


+ Reply to Thread
Results 1 to 20 of 20

Thread: Hwpw

Hybrid View

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

    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; - 20th June 2025 at 17:30.

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


    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

  3. #3
    Join Date
    Aug 2009
    Location
    Paso Robles California
    Posts
    167


    Did you find this post helpful? Yes | No

    Default Re: HWPW


    I ran your program and according to the scope they all are running the same freq. with different pulse width


  4. #4
    Join Date
    May 2013
    Location
    australia
    Posts
    2,643


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    I ran your program and according to the scope they all are running the same freq. with different pulse width
    not really they all are running the same pulse width with different freq.
    Attached Images Attached Images   
    Warning I'm not a teacher

  5. #5
    Join Date
    Aug 2009
    Location
    Paso Robles California
    Posts
    167


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    Well, I don't know what to say. I get all the same frequency with different pulse width.
    Even the program shows different pulse width.
    I even went back to the pick basic plus and i'm running for with four different timers, and they all run the same frequency, and if you set it for a different frequency, they shut down pulse width, I can control

  6. #6
    Join Date
    May 2013
    Location
    australia
    Posts
    2,643


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    Even the program shows different pulse width.
    what do you mean ,that makes little sense


    Well, I don't know what to say. I get all the same frequency with different pulse width.
    my code works perfectly on the simulator and the actual hardware
    post your code and schematic .
    Warning I'm not a teacher

  7. #7
    Join Date
    May 2013
    Location
    australia
    Posts
    2,643


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    first question how do you get the code box to post into

    https://www.picbasic.co.uk/forum/showthread.php/19594


    I did change the numbering to BIN so when looking in the manual I could line things up with the proper bits
    it can be informative for some registers for most its just unnecessary clutter

    its certainly not helped you get this correct

    CCPTMRS0 = %1011010 ; TIMER6 = CCP1, TIMER4 = CCP3

    setting C2TSEL<1:0>: CCP2 Timer Selection bits to %11 "reserved" is not a good practice
    CCPTMRS0 = %01000010 ; TIMER6 = CCP1, TIMER4 = CCP3 is preferable
    Warning I'm not a teacher

  8. #8
    Join Date
    Aug 2009
    Location
    Paso Robles California
    Posts
    167


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    Yes the 11 i wasn't sure how to deal with it. So I put it in there if it didn't work. I would have pulled it right out, but it did work in this case. Remember, it's been 15 years since I've done any programming. I wasn't sure how to deal with some of this. So what button do you use to put code in to the forum messages.

  9. #9
    Join Date
    Aug 2009
    Location
    Paso Robles California
    Posts
    167


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    Nevermind, I found it a pound tag.

  10. #10
    Join Date
    Aug 2009
    Location
    Paso Robles California
    Posts
    167


    Did you find this post helpful? Yes | No

    Default Re: Hwpw

    Where can I get this program

    mister e's pic multi-calc

Members who have read this thread : 9

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