48#include "pwm_hs_interface.h"
69#define PWM_HS_Initialize PWM_Initialize
74#define PWM_HS_Deinitialize PWM_Deinitialize
79#define PWM_HS_Disable PWM_Disable
84#define PWM_HS_Enable PWM_Enable
89#define PWM_HS_MasterPeriodSet PWM_MasterPeriodSet
94#define PWM_HS_MasterDutyCycleSet PWM_MasterDutyCycleSet
99#define PWM_HS_MasterPhaseSet PWM_MasterPhaseSet
104#define PWM_HS_PeriodSet PWM_PeriodSet
109#define PWM_HS_ModeSet PWM_ModeSet
114#define PWM_HS_DutyCycleSet PWM_DutyCycleSet
119#define PWM_HS_PhaseSelect PWM_PhaseSelect
124#define PWM_HS_PhaseSet PWM_PhaseSet
129#define PWM_HS_OverrideDataSet PWM_OverrideDataSet
134#define PWM_HS_OverrideDataHighSet PWM_OverrideDataHighSet
139#define PWM_HS_OverrideDataLowSet PWM_OverrideDataLowSet
144#define PWM_HS_OverrideDataGet PWM_OverrideDataGet
149#define PWM_HS_OverrideHighEnable PWM_OverrideHighEnable
154#define PWM_HS_OverrideLowEnable PWM_OverrideLowEnable
159#define PWM_HS_OverrideHighDisable PWM_OverrideHighDisable
164#define PWM_HS_OverrideLowDisable PWM_OverrideLowDisable
169#define PWM_HS_DeadTimeLowSet PWM_DeadTimeLowSet
174#define PWM_HS_DeadTimeHighSet PWM_DeadTimeHighSet
179#define PWM_HS_DeadTimeSet PWM_DeadTimeSet
184#define PWM_HS_TriggerCompareValueSet PWM_TriggerCompareValueSet
189#define PWM_HS_GeneratorInterruptEnable PWM_GeneratorInterruptEnable
194#define PWM_HS_GeneratorInterruptDisable PWM_GeneratorInterruptDisable
199#define PWM_HS_GeneratorEventStatusGet PWM_GeneratorEventStatusGet
204#define PWM_HS_GeneratorEventStatusClear PWM_GeneratorEventStatusClear
209#define PWM_HS_GeneratorDisable PWM_GeneratorDisable
214#define PWM_HS_GeneratorEnable PWM_GeneratorEnable
219#define PWM_HS_TriggerACompareValueSet PWM_TriggerACompareValueSet
224#define PWM_HS_TriggerBCompareValueSet PWM_TriggerBCompareValueSet
229#define PWM_HS_TriggerCCompareValueSet PWM_TriggerCCompareValueSet
234#define PWM_HS_SoftwareUpdateRequest PWM_SoftwareUpdateRequest
239#define PWM_HS_SoftwareUpdatePending PWM_SoftwareUpdatePending
244#define PWM_HS_FaultModeLatchClear PWM_FaultModeLatchClear
249 #define PWM_HS_Trigger1Enable PWM_Trigger1Enable
254#define PWM_HS_Trigger1Disable PWM_Trigger1Disable
259 #define PWM_HS_Trigger2Enable PWM_Trigger2Enable
264#define PWM_HS_Trigger2Disable PWM_Trigger2Disable
269#define PWM_HS_GeneratorEOCEventCallbackRegister PWM_GeneratorEOCEventCallbackRegister
275#define PWM_HS_GeneratorTasks PWM_GeneratorTasks
359 PG1CONLbits.MODSEL = mode;
362 PG1IOCONHbits.PMOD = 0x1;
366 PG1IOCONHbits.PMOD = 0x0;
370 PG2CONLbits.MODSEL = mode;
373 PG2IOCONHbits.PMOD = 0x1;
377 PG2IOCONHbits.PMOD = 0x0;
381 PG3CONLbits.MODSEL = mode;
384 PG3IOCONHbits.PMOD = 0x1;
388 PG3IOCONHbits.PMOD = 0x0;
392 PG4CONLbits.MODSEL = mode;
395 PG4IOCONHbits.PMOD = 0x1;
399 PG4IOCONHbits.PMOD = 0x0;
453 MDC = masterDutyCycle;
464 MPHASE = masterPhase;
530 PG1CONHbits.MPHSEL = source;
533 PG2CONHbits.MPHSEL = source;
536 PG3CONHbits.MPHSEL = source;
539 PG4CONHbits.MPHSEL = source;
583 PG1IOCONLbits.OVRDAT = overrideData;
586 PG2IOCONLbits.OVRDAT = overrideData;
589 PG3IOCONLbits.OVRDAT = overrideData;
592 PG4IOCONLbits.OVRDAT = overrideData;
610 PG1IOCONLbits.OVRDAT = (PG1IOCONLbits.OVRDAT & 0x1) | ((uint8_t)overrideDataHigh << 0x1);
613 PG2IOCONLbits.OVRDAT = (PG2IOCONLbits.OVRDAT & 0x1) | ((uint8_t)overrideDataHigh << 0x1);
616 PG3IOCONLbits.OVRDAT = (PG3IOCONLbits.OVRDAT & 0x1) | ((uint8_t)overrideDataHigh << 0x1);
619 PG4IOCONLbits.OVRDAT = (PG4IOCONLbits.OVRDAT & 0x1) | ((uint8_t)overrideDataHigh << 0x1);
637 PG1IOCONLbits.OVRDAT = (PG1IOCONLbits.OVRDAT & 0x2) | overrideDataLow;
640 PG2IOCONLbits.OVRDAT = (PG2IOCONLbits.OVRDAT & 0x2) | overrideDataLow;
643 PG3IOCONLbits.OVRDAT = (PG3IOCONLbits.OVRDAT & 0x2) | overrideDataLow;
646 PG4IOCONLbits.OVRDAT = (PG4IOCONLbits.OVRDAT & 0x2) | overrideDataLow;
662 uint16_t overrideData = 0x0U;
665 overrideData = PG1IOCONLbits.OVRDAT;
668 overrideData = PG2IOCONLbits.OVRDAT;
671 overrideData = PG3IOCONLbits.OVRDAT;
674 overrideData = PG4IOCONLbits.OVRDAT;
692 PG1IOCONLbits.OVRENH = 1;
695 PG2IOCONLbits.OVRENH = 1;
698 PG3IOCONLbits.OVRENH = 1;
701 PG4IOCONLbits.OVRENH = 1;
718 PG1IOCONLbits.OVRENL = 1;
721 PG2IOCONLbits.OVRENL = 1;
724 PG3IOCONLbits.OVRENL = 1;
727 PG4IOCONLbits.OVRENL = 1;
744 PG1IOCONLbits.OVRENH = 0;
747 PG2IOCONLbits.OVRENH = 0;
750 PG3IOCONLbits.OVRENH = 0;
753 PG4IOCONLbits.OVRENH = 0;
770 PG1IOCONLbits.OVRENL = 0;
773 PG2IOCONLbits.OVRENL = 0;
776 PG3IOCONLbits.OVRENL = 0;
779 PG4IOCONLbits.OVRENL = 0;
797 PG1DTL = deadtimeLow;
800 PG2DTL = deadtimeLow;
803 PG3DTL = deadtimeLow;
806 PG4DTL = deadtimeLow;
824 PG1DTH = deadtimeHigh;
827 PG2DTH = deadtimeHigh;
830 PG3DTH = deadtimeHigh;
833 PG4DTH = deadtimeHigh;
882 PG1TRIGA = trigCompValue;
885 PG2TRIGA = trigCompValue;
888 PG3TRIGA = trigCompValue;
891 PG4TRIGA = trigCompValue;
911 PG1EVTHbits.FLTIEN =
true;
914 PG1EVTHbits.CLIEN =
true;
917 PG1EVTHbits.FFIEN =
true;
920 PG1EVTHbits.SIEN =
true;
928 PG2EVTHbits.FLTIEN =
true;
931 PG2EVTHbits.CLIEN =
true;
934 PG2EVTHbits.FFIEN =
true;
937 PG2EVTHbits.SIEN =
true;
945 PG3EVTHbits.FLTIEN =
true;
948 PG3EVTHbits.CLIEN =
true;
951 PG3EVTHbits.FFIEN =
true;
954 PG3EVTHbits.SIEN =
true;
962 PG4EVTHbits.FLTIEN =
true;
965 PG4EVTHbits.CLIEN =
true;
968 PG4EVTHbits.FFIEN =
true;
971 PG4EVTHbits.SIEN =
true;
994 PG1EVTHbits.FLTIEN =
false;
997 PG1EVTHbits.CLIEN =
false;
1000 PG1EVTHbits.FFIEN =
false;
1003 PG1EVTHbits.SIEN =
false;
1011 PG2EVTHbits.FLTIEN =
false;
1014 PG2EVTHbits.CLIEN =
false;
1017 PG2EVTHbits.FFIEN =
false;
1020 PG2EVTHbits.SIEN =
false;
1028 PG3EVTHbits.FLTIEN =
false;
1031 PG3EVTHbits.CLIEN =
false;
1034 PG3EVTHbits.FFIEN =
false;
1037 PG3EVTHbits.SIEN =
false;
1045 PG4EVTHbits.FLTIEN =
false;
1048 PG4EVTHbits.CLIEN =
false;
1051 PG4EVTHbits.FFIEN =
false;
1054 PG4EVTHbits.SIEN =
false;
1077 PG1STATbits.FLTEVT = 0;
1080 PG1STATbits.CLEVT = 0;
1083 PG1STATbits.FFEVT = 0;
1086 PG1STATbits.SEVT = 0;
1094 PG2STATbits.FLTEVT = 0;
1097 PG2STATbits.CLEVT = 0;
1100 PG2STATbits.FFEVT = 0;
1103 PG2STATbits.SEVT = 0;
1111 PG3STATbits.FLTEVT = 0;
1114 PG3STATbits.CLEVT = 0;
1117 PG3STATbits.FFEVT = 0;
1120 PG3STATbits.SEVT = 0;
1128 PG4STATbits.FLTEVT = 0;
1131 PG4STATbits.CLEVT = 0;
1134 PG4STATbits.FFEVT = 0;
1137 PG4STATbits.SEVT = 0;
1162 status = PG1STATbits.FLTEVT;
1165 status = PG1STATbits.CLEVT;
1168 status = PG1STATbits.FFEVT;
1171 status = PG1STATbits.SEVT;
1179 status = PG2STATbits.FLTEVT;
1182 status = PG2STATbits.CLEVT;
1185 status = PG2STATbits.FFEVT;
1188 status = PG2STATbits.SEVT;
1196 status = PG3STATbits.FLTEVT;
1199 status = PG3STATbits.CLEVT;
1202 status = PG3STATbits.FFEVT;
1205 status = PG3STATbits.SEVT;
1213 status = PG4STATbits.FLTEVT;
1216 status = PG4STATbits.CLEVT;
1219 status = PG4STATbits.FFEVT;
1222 status = PG4STATbits.SEVT;
1243 PG1STATbits.UPDREQ = 1;
1246 PG2STATbits.UPDREQ = 1;
1249 PG3STATbits.UPDREQ = 1;
1252 PG4STATbits.UPDREQ = 1;
1272 status = PG1STATbits.UPDATE;
1275 status = PG2STATbits.UPDATE;
1278 status = PG3STATbits.UPDATE;
1281 status = PG4STATbits.UPDATE;
1384 switch(compareRegister) {
1386 PG1EVTLbits.ADTR1EN1 = 1;
1389 PG1EVTLbits.ADTR1EN2 = 1;
1392 PG1EVTLbits.ADTR1EN3 = 1;
1398 switch(compareRegister) {
1400 PG2EVTLbits.ADTR1EN1 = 1;
1403 PG2EVTLbits.ADTR1EN2 = 1;
1406 PG2EVTLbits.ADTR1EN3 = 1;
1412 switch(compareRegister) {
1414 PG3EVTLbits.ADTR1EN1 = 1;
1417 PG3EVTLbits.ADTR1EN2 = 1;
1420 PG3EVTLbits.ADTR1EN3 = 1;
1426 switch(compareRegister) {
1428 PG4EVTLbits.ADTR1EN1 = 1;
1431 PG4EVTLbits.ADTR1EN2 = 1;
1434 PG4EVTLbits.ADTR1EN3 = 1;
1456 switch(compareRegister) {
1458 PG1EVTLbits.ADTR1EN1 = 0;
1461 PG1EVTLbits.ADTR1EN2 = 0;
1464 PG1EVTLbits.ADTR1EN3 = 0;
1470 switch(compareRegister) {
1472 PG2EVTLbits.ADTR1EN1 = 0;
1475 PG2EVTLbits.ADTR1EN2 = 0;
1478 PG2EVTLbits.ADTR1EN3 = 0;
1484 switch(compareRegister) {
1486 PG3EVTLbits.ADTR1EN1 = 0;
1489 PG3EVTLbits.ADTR1EN2 = 0;
1492 PG3EVTLbits.ADTR1EN3 = 0;
1498 switch(compareRegister) {
1500 PG4EVTLbits.ADTR1EN1 = 0;
1503 PG4EVTLbits.ADTR1EN2 = 0;
1506 PG4EVTLbits.ADTR1EN3 = 0;
1531 switch(compareRegister) {
1533 PG1EVTHbits.ADTR2EN1 = 1;
1536 PG1EVTHbits.ADTR2EN2 = 1;
1539 PG1EVTHbits.ADTR2EN3 = 1;
1545 switch(compareRegister) {
1547 PG2EVTHbits.ADTR2EN1 = 1;
1550 PG2EVTHbits.ADTR2EN2 = 1;
1553 PG2EVTHbits.ADTR2EN3 = 1;
1559 switch(compareRegister) {
1561 PG3EVTHbits.ADTR2EN1 = 1;
1564 PG3EVTHbits.ADTR2EN2 = 1;
1567 PG3EVTHbits.ADTR2EN3 = 1;
1573 switch(compareRegister) {
1575 PG4EVTHbits.ADTR2EN1 = 1;
1578 PG4EVTHbits.ADTR2EN2 = 1;
1581 PG4EVTHbits.ADTR2EN3 = 1;
1603 switch(compareRegister) {
1605 PG1EVTHbits.ADTR2EN1 = 0;
1608 PG1EVTHbits.ADTR2EN2 = 0;
1611 PG1EVTHbits.ADTR2EN3 = 0;
1617 switch(compareRegister) {
1619 PG2EVTHbits.ADTR2EN1 = 0;
1622 PG2EVTHbits.ADTR2EN2 = 0;
1625 PG2EVTHbits.ADTR2EN3 = 0;
1631 switch(compareRegister) {
1633 PG3EVTHbits.ADTR2EN1 = 0;
1636 PG3EVTHbits.ADTR2EN2 = 0;
1639 PG3EVTHbits.ADTR2EN3 = 0;
1645 switch(compareRegister) {
1647 PG4EVTHbits.ADTR2EN1 = 0;
1650 PG4EVTHbits.ADTR2EN2 = 0;
1653 PG4EVTHbits.ADTR2EN3 = 0;
1674 PG1FPCILbits.SWTERM = 1;
1677 PG2FPCILbits.SWTERM = 1;
1680 PG3FPCILbits.SWTERM = 1;
1683 PG4FPCILbits.SWTERM = 1;
This is the generated driver types header file for the PWM driver.
@ PWM_GENERATOR_INTERRUPT_FEED_FORWARD
@ PWM_GENERATOR_INTERRUPT_SYNC
@ PWM_GENERATOR_INTERRUPT_CURRENT_LIMIT
@ PWM_GENERATOR_INTERRUPT_FAULT
@ PWM_MODE_INDEPENDENT_EDGE_DUAL_OUTPUT
static void PWM_Trigger2Enable(enum PWM_GENERATOR genNum, enum PWM_TRIGGER_COMPARE compareRegister)
This inline function enables ADC trigger 2 for the specific compare register selected by the argument...
static void PWM_MasterPhaseSet(uint16_t masterPhase)
This inline function sets the phase value in count for the Master Time Base generator.
static void PWM_GeneratorInterruptDisable(enum PWM_GENERATOR genNum, enum PWM_GENERATOR_INTERRUPT interrupt)
This inline function disables interrupt requests for the PWM Generator selected by the argument PWM_G...
static void PWM_DeadTimeLowSet(enum PWM_GENERATOR genNum, uint16_t deadtimeLow)
This inline function updates PWM Deadtime low register with the requested value for a specific PWM ge...
static void PWM_OverrideDataHighSet(enum PWM_GENERATOR genNum, bool overrideDataHigh)
This inline function updates PWM override high data bit with the requested value for a specific PWM g...
static void PWM_Trigger1Disable(enum PWM_GENERATOR genNum, enum PWM_TRIGGER_COMPARE compareRegister)
This inline function disables ADC trigger 1 for the specific compare register selected by the argumen...
static uint16_t PWM_OverrideDataGet(enum PWM_GENERATOR genNum)
This inline function gets PWM override value for the PWM Generator selected by the argument PWM_GENER...
static void PWM_OverrideLowEnable(enum PWM_GENERATOR genNum)
This inline function enables PWM override on PWML output for specific PWM generator selected by the a...
PWM_GENERATOR_INTERRUPT
Defines the PWM generator interrupts that are available for the module to use.
const struct PWM_HS_INTERFACE PWM_HS
Structure object of type PWM_HS_INTERFACE with the custom name given by the user in the Melody Driver...
void PWM_Initialize(void)
Initializes PWM module, using the given initialization data.
static void PWM_MasterPeriodSet(uint16_t masterPeriod)
This inline function sets the period value in count for the Master Time Base generator.
static void PWM_TriggerACompareValueSet(enum PWM_GENERATOR genNum, uint16_t trigA)
This inline function sets the Trigger A compare value in count for a specific PWM generator selected ...
static void PWM_TriggerBCompareValueSet(enum PWM_GENERATOR genNum, uint16_t trigB)
This inline function sets the Trigger B compare value in count for a specific PWM generator selected ...
static void PWM_DutyCycleSet(enum PWM_GENERATOR genNum, uint16_t dutyCycle)
This inline function sets the PWM generator specific duty cycle register.
void PWM_GeneratorEOCEventCallback(enum PWM_GENERATOR genNum)
This is the default callback with weak attribute. The user can override and implement the default cal...
void PWM_Deinitialize(void)
Deinitializes the PWM to POR values.
static void PWM_TriggerCompareValueSet(enum PWM_GENERATOR genNum, uint16_t trigCompValue)
This inline function sets the PWM trigger compare value in count for the PWM Generator selected by th...
PWM_TRIGGER_COMPARE
Defines the PWM generator Trigger Compare registers that are available for the module to use.
static void PWM_OverrideHighEnable(enum PWM_GENERATOR genNum)
This inline function enables PWM override on PWMH output for specific PWM generator selected by the a...
static void PWM_GeneratorDisable(enum PWM_GENERATOR genNum)
This inline function disables the specific PWM generator selected by the argument PWM_GENERATOR.
static void PWM_Disable(void)
This inline function will disable all the generators of PWM module.
static void PWM_PhaseSet(enum PWM_GENERATOR genNum, uint16_t phase)
This inline function sets the phase value in count for the PWM generator specific Time Base.
static bool PWM_GeneratorEventStatusGet(enum PWM_GENERATOR genNum, enum PWM_GENERATOR_INTERRUPT interrupt)
This inline function gets the PWM interrupt status for the PWM Generator selected by the argument PWM...
static void PWM_FaultModeLatchClear(enum PWM_GENERATOR genNum)
This inline function clears the status of PWM latched fault mode for the PWM Generator selected by th...
static void PWM_ModeSet(enum PWM_GENERATOR genNum, enum PWM_MODES mode)
This inline function sets the operating mode of specific PWM generator selected by the argument PWM...
static void PWM_SoftwareUpdateRequest(enum PWM_GENERATOR genNum)
This inline function requests to update the data registers for specific PWM generator selected by the...
PWM_MODES
Defines the PWM generator operating modes that are available.
static void PWM_MasterDutyCycleSet(uint16_t masterDutyCycle)
This inline function sets the PWM master duty cycle register.
static void PWM_OverrideDataLowSet(enum PWM_GENERATOR genNum, bool overrideDataLow)
This inline function updates PWM override low data bit with the requested value for a specific PWM ge...
static void PWM_OverrideHighDisable(enum PWM_GENERATOR genNum)
This inline function disables PWM override on PWMH output for specific PWM generator selected by the ...
static void PWM_OverrideDataSet(enum PWM_GENERATOR genNum, uint16_t overrideData)
This inline function updates PWM override data bits with the requested value for a specific PWM gener...
static void PWM_DeadTimeSet(enum PWM_GENERATOR genNum, uint16_t deadtime)
This inline function updates PWM Deadtime low and high register with the requested value for a specif...
PWM_GENERATOR
Defines the PWM generators that are selected from the MCC Melody User Interface for the PWM output co...
static bool PWM_SoftwareUpdatePending(enum PWM_GENERATOR genNum)
This inline function gets the status of the update request for specific PWM generator selected by the...
void PWM_GeneratorTasks(enum PWM_GENERATOR intGen)
This is a tasks function for PWM1.
static void PWM_Trigger2Disable(enum PWM_GENERATOR genNum, enum PWM_TRIGGER_COMPARE compareRegister)
This inline function disables ADC trigger 2 for the specific compare register selected by the argumen...
static void PWM_GeneratorEventStatusClear(enum PWM_GENERATOR genNum, enum PWM_GENERATOR_INTERRUPT interrupt)
This inline function clears the PWM interrupt status for the PWM Generator selected by the argument P...
static void PWM_OverrideLowDisable(enum PWM_GENERATOR genNum)
This inline function disables PWM override on PWML output for specific PWM generator selected by the ...
static void PWM_GeneratorInterruptEnable(enum PWM_GENERATOR genNum, enum PWM_GENERATOR_INTERRUPT interrupt)
This inline function enables interrupt requests for the PWM Generator selected by the argument PWM_GE...
static void PWM_TriggerCCompareValueSet(enum PWM_GENERATOR genNum, uint16_t trigC)
This inline function sets the Trigger C compare value in count for a specific PWM generator selected ...
static void PWM_PhaseSelect(enum PWM_GENERATOR genNum, enum PWM_SOURCE_SELECT source)
This inline function selects the PWM generator source for Phase.
static void PWM_Trigger1Enable(enum PWM_GENERATOR genNum, enum PWM_TRIGGER_COMPARE compareRegister)
This inline function enables ADC trigger 1 for the specific compare register selected by the argument...
static void PWM_PeriodSet(enum PWM_GENERATOR genNum, uint16_t period)
This inline function sets the period value in count for the PWM generator specific Time Base.
static void PWM_GeneratorEnable(enum PWM_GENERATOR genNum)
This inline function enables the specific PWM generator selected by the argument PWM_GENERATOR.
static void PWM_DeadTimeHighSet(enum PWM_GENERATOR genNum, uint16_t deadtimeHigh)
This inline function updates PWM Deadtime high register with the requested value for a specific PWM g...
static void PWM_Enable(void)
This inline function will enable all the generators of PWM module.
void PWM_GeneratorEOCEventCallbackRegister(void(*callback)(enum PWM_GENERATOR genNum))
This function can be used to override default callback PWM_GeneratorEOCEventCallback and to define cu...
Structure containing the function pointers of PWM driver.