Hello,

I am upgrading from a 16F628 to a 12F1572 to take advantage of it's "Precision" 16Bit PWM.

How do I configure PBP 3 to take advantage of it's HWPWM function?
(Needed is a symetrical 125KHz (4mS/4mS) 50% duty cycle.)

----------------------------------------------------------------------------------------------------

' 125KHz PWM Test Generator PIC16F628 For Planar Antenna Experiment
' 12LF1572 (12F1572 is the 5Volt Version)
' Jay Zebryk 2022-07-04


#CONFIG
__config _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_OFF & _CP_ON & _BOREN_ON & _CLKOUTEN_OFF
__config _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_ON & _BORV_LO & _LPBOREN_OFF & _LVP_OFF
#ENDCONFIG


' CP_OFF changed to CP_ON to enable hardware PWM.
' See HPWM_F1579_NOTES.txt
' MCLRE_ON changed to MCLRE_OFF for digital input with Weak Pull-Up Enabled


' OLD SETTINGS FROM 16F628


'PR2 = %00001001 ' dec 9 47.5%
'T2CON = %00000101 ' dec 5
'CCPR1L = %00000100 ' dec 4
'CCP1CON = %00111100 ' dec 60


WPUA = %00000100 ' Weak Pull-Up Enabled RA2 (SW Input)


OSCCON = %01111000 ' Bits 6-3 16 MHz OSC, Internal, I/O Pins Enabled
Define OSC 16


DEFINE CCP1_REG PORTA ; Tell PBP which pins the CCP outputs are on
DEFINE CCP1_BIT 2


Beep VAR PORTA.0 ' Assign name Beep (and/or Piezoto PORTB.0
TX var TRISA.1 ' 125KHz PWM Output (CCP1 Pin)
SW var TRISA.2 ' CW vs 100mS ON / 900mS OFF


PortA = %00000000 ' PortA all OFF
TRISA = %11111100 ' Inputs = 1, Outputs = 0


I VAR BYTE ' Index I


CLEAR ' Clear all variables to 0

Boot:


Pause 1000


For I = 0 to 1
Beep = 1
Pause 100
Beep = 0
pause 100
Next I


pause 1000


' THE BELOW PRODUCES A COMPILATIO ERROR
HPWM 1, Duty, 125000 ' Start HWPWM CONTINUOUS


Main:


Beep = 1
pause 100
Beep = 0
pause 1000


goto Main


end

----------------------------------------------------------------------------------------------------