Digital Power Starter Kit 3 Firmware
dsPIC33C Boost Converter Voltage Mode Control Example
p33c_pwm.h
1 /*
2  (c) 2021 Microchip Technology Inc. and its subsidiaries. You may use this
3  software and any derivatives exclusively with Microchip products.
4 
5  THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
6  EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
7  WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
8  PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION
9  WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.
10 
11  IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
12  INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
13  WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
14  BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
15  FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
16  ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
17  THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
18 
19  MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE
20  TERMS.
21 */
22 
23 /*@@p33c_pwm.h
24  * ************************************************************************************************
25  * Summary:
26  * Generic High-Speed SMPS PWM Driver Module & Generator Instances (header file)
27  *
28  * Description:
29  * This additional header file contains defines for all required bit-settings of all related
30  * special function registers of a peripheral module and/or instance.
31  * This file is an additional header file on top of the generic device header file.
32  *
33  * See Also:
34  * p33c_pwm.c
35  *
36  * ***********************************************************************************************#
37  * Revision history:
38  * 06/22/20 1.0 initial release
39  * 09/16/20 1.1 Simplified module and generator addressing
40  * ***********************************************************************************************/
41 
42 // This is a guard condition so that contents of this file are not included
43 // more than once.
44 #ifndef P33C_PWM_SFR_ABSTRACTION_H
45 #define P33C_PWM_SFR_ABSTRACTION_H
46 
47 // Include standard header files
48 #include <xc.h> // include processor files - each processor file is guarded.
49 #include <stdint.h> // include standard integer data types
50 #include <stdbool.h> // include standard boolean data types
51 #include <stddef.h> // include standard definition data types
52 
53 //#ifndef __dsPIC33C__
54 // #error "peripheral driver p33c_pwm.h does not support the selected device"
55 //#endif
56 
57 
58 /* GENERIC SPECIAL FUNCTION REGISTER (SFR) SETS
59  * ============================================
60  *
61  * Direct addressing of Special Function Registers (SFR) in user code is good
62  * enough for a specific application but makes it harder to maintain the code
63  * or migrate the code across devices and applications.
64  *
65  * Especially with complex configurations with multiple dependencies across various
66  * peripherals, migrating configurations can become very challenging to review,
67  * debug and migrate.
68  *
69  * Therefore this PWM configuration example uses a 'virtual PWM generator' to set up
70  * the required PWM configuration but provides a function allowing users to write this
71  * configuration to any PWM generator of choice. Hence, pre-defined configurations
72  * can be mapped on specific peripheral instance by using their index defined by the
73  * data sheet (e.g. pgInstance = 1 maps pre-defined configuration to PG1)
74  *
75  * The data types used for each SFR in the P33C_PWM_GENERATOR_t data structure below,
76  * are data types declared in the common C-header file of the device (e.g. <d33CK256MP506.h>).
77  * These header files are provided with the XC16 C-Compiler installation and don't have to be
78  * written nor changed manually.
79  *
80  */
81 
82 // GENERIC PWM MODULE SPECIAL FUNCTION REGISTER SET
83 
85 
86  union {
87  struct tagPCLKCONBITS bits; // Register bit-field
88  uint16_t value; // 16-bit wide register value
89  } vPCLKCON; // PCLKCON: PWM CLOCK CONTROL REGISTER
90  union {
91  struct {
92  uint16_t FSCL : 16; // Register bit-field
93  } bits; // Register bit-field
94  uint16_t value; // 16-bit wide register value
95  } vFSCL; // FSCL: FREQUENCY SCALE REGISTER
96  union {
97  struct {
98  uint16_t FSMINPER : 16; // Register bit-field
99  } bits; // Register bit-field
100  uint16_t value : 16; // 16-bit wide register value
101  }vFSMINPER; // FSMINPER: FREQUENCY SCALING MINIMUM PERIOD REGISTER
102  union {
103  struct {
104  uint16_t MPHASE : 16; // Register bit-field
105  } bits; // Register bit-field
106  uint16_t value; // 16-bit wide register value
107  }vMPHASE; // MPHASE: MASTER PHASE REGISTER
108  union {
109  struct {
110  uint16_t MDC : 16; // Register bit-field
111  } bits; // Register bit-field
112  uint16_t value; // 16-bit wide register value
113  }vMDC; // MDC: MASTER DUTY CYCLE REGISTER
114  union {
115  struct {
116  uint16_t MPER : 16; // Register bit-field
117  } bits; // Register bit-field
118  uint16_t value; // 16-bit wide register value
119  }vMPER; // MPER: MASTER PERIOD REGISTER
120  union {
121  struct {
122  uint16_t LFSR : 15; // Register bit-field
123  uint16_t : 1; // (reserved)
124  } bits; // Register bit-field
125  uint16_t value; // 16-bit wide register value
126  }vLFSR; // LFSR: LINEAR FEEDBACK SHIFT REGISTER
127  union {
128  struct tagCMBTRIGLBITS bits; // Register bit-field
129  uint16_t value : 16; // 16-bit wide register value
130  }vCMBTRIGL; // CMBTRIGL: COMBINATIONAL TRIGGER REGISTER LOW
131  union {
132  struct tagCMBTRIGHBITS bits; // Register bit-field
133  uint16_t value : 16; // 16-bit wide register value
134  }vCMBTRIGH; // CMBTRIGL: COMBINATIONAL TRIGGER REGISTER HIGH
135  union {
136  struct tagLOGCONABITS bits; // Register bit-field
137  uint16_t value : 16; // 16-bit wide register value
138  }LOGCON_A; // LOGCONx: COMBINATORIAL PWM LOGIC CONTROL REGISTER x
139  union {
140  struct tagLOGCONABITS bits; // Register bit-field
141  uint16_t value : 16; // 16-bit wide register value
142  }LOGCON_B; // LOGCONx: COMBINATORIAL PWM LOGIC CONTROL REGISTER x
143  union {
144  struct tagLOGCONABITS bits; // Register bit-field
145  uint16_t value : 16; // 16-bit wide register value
146  }LOGCON_C; // LOGCONx: COMBINATORIAL PWM LOGIC CONTROL REGISTER x
147  union {
148  struct tagLOGCONABITS bits; // Register bit-field
149  uint16_t value : 16; // 16-bit wide register value
150  }LOGCON_D; // LOGCONx: COMBINATORIAL PWM LOGIC CONTROL REGISTER x
151  union {
152  struct tagLOGCONABITS bits; // Register bit-field
153  uint16_t value : 16; // 16-bit wide register value
154  }LOGCON_E; // LOGCONx: COMBINATORIAL PWM LOGIC CONTROL REGISTER x
155  union {
156  struct tagLOGCONABITS bits; // Register bit-field
157  uint16_t value : 16; // 16-bit wide register value
158  }LOGCON_F; // LOGCONx: COMBINATORIAL PWM LOGIC CONTROL REGISTER x
159  union {
160  struct tagPWMEVTABITS bits; // Register bit-field
161  uint16_t value : 16; // 16-bit wide register value
162  }PWMEVT_A; // PWMEVTx: PWM EVENT OUTPUT CONTROL REGISTER x
163  union {
164  struct tagPWMEVTABITS bits; // Register bit-field
165  uint16_t value : 16; // 16-bit wide register value
166  }PWMEVT_B; // PWMEVTx: PWM EVENT OUTPUT CONTROL REGISTER x
167  union {
168  struct tagPWMEVTABITS bits; // Register bit-field
169  uint16_t value : 16; // 16-bit wide register value
170  }PWMEVT_C; // PWMEVTx: PWM EVENT OUTPUT CONTROL REGISTER x
171  union {
172  struct tagPWMEVTABITS bits; // Register bit-field
173  uint16_t value : 16; // 16-bit wide register value
174  }PWMEVT_D; // PWMEVTx: PWM EVENT OUTPUT CONTROL REGISTER x
175  union {
176  struct tagPWMEVTABITS bits; // Register bit-field
177  uint16_t value : 16; // 16-bit wide register value
178  }PWMEVT_E; // PWMEVTx: PWM EVENT OUTPUT CONTROL REGISTER x
179  union {
180  struct tagPWMEVTABITS bits; // Register bit-field
181  uint16_t value : 16; // 16-bit wide register value
182  }PWMEVT_F; // PWMEVTx: PWM EVENT OUTPUT CONTROL REGISTER x
183 
184 } __attribute__((packed)); // PWM MODULE SPECIAL FUNCTION REGISTER SET
185 typedef struct P33C_PWM_MODULE_s P33C_PWM_MODULE_t; // PWM MODULE SPECIAL FUNCTION REGISTER SET DATA TYPE
186 
187 /*********************************************************************************
188  * @def p33c_PwmModule_GetHandle()
189  * @ingroup lib-layer-pral-functions-public-pwm
190  * @brief Gets pointer to PWM module SFR set
191  * @return struct P33C_PWM_GENERATOR_s: PWM generator object of the selected PWM generator instance
192  *
193  * @details
194  * This macro returns the PWM generator index, the PWM generator group
195  * (1 = [PG1-PG4], 2 = [PG5-PG8]) and the address pointer (handle) of
196  * the PWM generator Special Function Register set. handle can be used
197  * to directly read from/write to PWM registers of the selected PWM
198  * generator with zero API overhead.
199  *
200  *********************************************************************************/
201 #define p33c_PwmModule_GetHandle() (struct P33C_PWM_MODULE_s*)&PCLKCON // Captures memory address of first PWM module register
202 
203 
204 // GENERIC PWM GENERATOR SPECIAL FUNCTION REGISTER SET
205 
207  union {
208  struct tagPG1CONLBITS bits; // Register bit-field
209  uint16_t value : 16; // 16-bit wide register value
210  }PGxCONL; // PGxCONH: PWM GENERATOR x CONTROL REGISTER HIGH
211  union {
212  struct tagPG1CONHBITS bits; // Register bit-field
213  uint16_t value; // 16-bit wide register value
214  }PGxCONH; // PGxCONH: PWM GENERATOR x CONTROL REGISTER HIGH
215  union {
216  struct tagPG1STATBITS bits; // Register bit-field
217  uint16_t value; // 16-bit wide register value
218  }PGxSTAT; // PGxSTAT: PWM GENERATOR x STATUS REGISTER
219  union {
220  struct tagPG1IOCONLBITS bits; // Register bit-field
221  uint16_t value; // 16-bit wide register value
222  }PGxIOCONL; // PGxIOCONL: PWM GENERATOR x I/O CONTROL REGISTER LOW
223  union {
224  struct tagPG1IOCONHBITS bits; // Register bit-field
225  uint16_t value; // 16-bit wide register value
226  } PGxIOCONH; // PGxIOCONH: PWM GENERATOR x I/O CONTROL REGISTER HIGH
227  union {
228  struct tagPG1EVTLBITS bits; // Register bit-field
229  uint16_t value; // 16-bit wide register value
230  }PGxEVTL; // PGxEVTL: PWM GENERATOR x EVENT REGISTER LOW
231  union {
232  struct tagPG1EVTHBITS bits; // Register bit-field
233  uint16_t value; // 16-bit wide register value
234  }PGxEVTH; // PGxEVTH: PWM GENERATOR x EVENT REGISTER HIGH
235  union {
236  struct tagPG1FPCILBITS bits; // Register bit-field
237  uint16_t value; // 16-bit wide register value
238  }PGxFPCIL; // PGxFPCIL: PWM GENERATOR x FAULT PCI REGISTER LOW
239  union {
240  struct tagPG1FPCIHBITS bits; // Register bit-field
241  uint16_t value; // 16-bit wide register value
242  }PGxFPCIH; // PGxFPCIH: PWM GENERATOR x FAULT PCI REGISTER HIGH
243  union {
244  struct tagPG1CLPCILBITS bits; // Register bit-field
245  uint16_t value; // 16-bit wide register value
246  }PGxCLPCIL; // PGxCLPCIL: PWM GENERATOR x CURRENT LIMIT PCI REGISTER LOW
247  union {
248  struct tagPG1CLPCIHBITS bits; // Register bit-field
249  uint16_t value; // 16-bit wide register value
250  }PGxCLPCIH; // PGxCLPCIH: PWM GENERATOR x CURRENT LIMIT PCI REGISTER HIGH
251  union {
252  struct tagPG1FFPCILBITS bits; // Register bit-field
253  uint16_t value; // 16-bit wide register value
254  }PGxFFPCIL; // PGxFFPCIL: PWM GENERATOR x FEED FORWARD PCI REGISTER LOW
255  union {
256  struct tagPG1FFPCIHBITS bits; // Register bit-field
257  uint16_t value; // 16-bit wide register value
258  }PGxFFPCIH; // PGxFFPCIH: PWM GENERATOR x FEED FORWARD PCI REGISTER HIGH
259  union {
260  struct tagPG1SPCILBITS bits; // Register bit-field
261  uint16_t value; // 16-bit wide register value
262  }PGxSPCIL; // PGxSPCIL: PWM GENERATOR x SOFTWARE PCI REGISTER LOW
263  union {
264  struct tagPG1SPCIHBITS bits; // Register bit-field
265  uint16_t value; // 16-bit wide register value
266  }PGxSPCIH; // PGxSPCIH: PWM GENERATOR x SOFTWARE PCI REGISTER HIGH
267  union {
268  struct {
269  uint16_t LEBL : 16; // Register bit-field
270  } bits; // Register bit-field
271  uint16_t value; // 16-bit wide register value
272  }PGxLEBL; // PGxLEBL: PWM GENERATOR x LEADING-EDGE BLANKING REGISTER LOW
273  union {
274  struct tagPG1LEBHBITS bits; // Register bit-field
275  uint16_t value; // 16-bit wide register value
276  }PGxLEBH; // PGxLEBH: PWM GENERATOR x LEADING-EDGE BLANKING REGISTER HIGH
277  union {
278  struct {
279  uint16_t PHASE : 16; // Register bit-field
280  } bits; // Register bit-field
281  uint16_t value; // 16-bit wide register value
282  }PGxPHASE; // PGxPHASE: PWM GENERATOR x PHASE REGISTER
283  union {
284  struct {
285  uint16_t DC : 16; // Register bit-field
286  } bits; // Register bit-field
287  uint16_t value; // 16-bit wide register value
288  }PGxDC; // PGxDC: PWM GENERATOR x DUTY CYCLE REGISTER
289  union {
290  struct tagPG1DCABITS bits; // Register bit-field
291  uint16_t value; // 16-bit wide register value
292  }PGxDCA; // PGxDCA: PWM GENERATOR x DUTY CYCLE ADJUSTMENT REGISTER
293  union {
294  struct {
295  uint16_t PER : 16; // Register bit-field
296  } bits; // Register bit-field
297  uint16_t value; // 16-bit wide register value
298  }PGxPER; // PGxPER: PWM GENERATOR x PERIOD REGISTER
299  union {
300  struct {
301  uint16_t TRIG : 16; // Register bit-field
302  } bits; // Register bit-field
303  uint16_t value; // 16-bit wide register value
304  }PGxTRIGA; // PGxTRIGA: PWM GENERATOR x TRIGGER A REGISTER
305  union {
306  struct {
307  uint16_t TRIG : 16; // Register bit-field
308  } bits; // Register bit-field
309  uint16_t value; // 16-bit wide register value
310  }PGxTRIGB; // PGxTRIGB: PWM GENERATOR x TRIGGER B REGISTER
311  union {
312  struct {
313  uint16_t TRIG : 16; // Register bit-field
314  } bits; // Register bit-field
315  uint16_t value; // 16-bit wide register value
316  }PGxTRIGC; // PGxTRIGC: PWM GENERATOR x TRIGGER C REGISTER
317  union {
318  struct tagPG1DTLBITS bits; // Register bit-field
319  uint16_t value; // 16-bit wide register value
320  }PGxDTL; // PGxDTL: PWM GENERATOR x DEAD-TIME REGISTER LOW
321  union {
322  struct tagPG1DTHBITS bits; // Register bit-field
323  uint16_t value; // 16-bit wide register value
324  }PGxDTH; // PGxDTH: PWM GENERATOR x DEAD-TIME REGISTER HIGH
325  union {
326  struct {
327  uint16_t CAP : 16; // Register bit-field
328  } bits; // Register bit-field
329  uint16_t value : 16; // 16-bit wide register value
330  }PGxCAP; // PGxCAP: PWM GENERATOR x CAPTURE REGISTER
331 } __attribute__((packed)); // PWM GENERATOR INSTANCE SPECIAL FUNCTION REGISTER SET
332 typedef struct P33C_PWM_GENERATOR_s P33C_PWM_GENERATOR_t; // PWM GENERATOR INSTANCE SPECIAL FUNCTION REGISTER SET DATA TYPE
333 
334 /*********************************************************************************
335  * @def P33C_PWMGEN_SFR_OFFSET
336  * @ingroup lib-layer-pral-functions-public-pwm
337  * @brief Returns PWM generator instance Special Function Register set address offset
338  * @return Memory address offset between PWM generator instances in number of bytes
339  *
340  * @details
341  * This macro returns the address offset between PWM generator instances Special
342  * Function Register (SFR) sets allowing to calculate the relative distance between
343  * SFR addresses of two different PWM generators.
344  *
345  *********************************************************************************/
346 #define P33C_PWMGEN_SFR_OFFSET ((volatile uint16_t)&PG2CONL - (volatile uint16_t)&PG1CONL)
347 
348 /*********************************************************************************
349  * @def P33C_PG_COUNT
350  * @ingroup lib-layer-pral-functions-public-pwm
351  * @brief Returns number of available PWM generators on the selected device
352  * @return Number of available PWM generators on the selected device of type unsigned integer
353  *
354  * @details
355  * Firmware modules may also use the macro PWM_GENERATOR_COUNT to derive the
356  * number of available PWM generators on the recently selected device. Both
357  * settings are equally valid.
358  *********************************************************************************/
359 #if defined (PG8CONL)
360  // Array of pointers to first registers of PWM generator instances on this device
361  #define P33C_PG_COUNT 8
362  #define PWM_GENERATOR_COUNT 8
363 #elif defined (PG4CONL)
364  // Array of pointers to first registers of PWM generator instances on this device
365  #define P33C_PG_COUNT 4
366  #define PWM_GENERATOR_COUNT 4
367 #endif
368 
369 /*********************************************************************************
370  * @def p33c_PwmGenerator_GetHandle(x)
371  * @ingroup lib-layer-pral-functions-public-pwm
372  * @brief Returns a pointer to the start address of a PWM generator SFR block
373  * @param x Instance of the PWM generator of type unsigned integer (e.g. 1=PG1, 2=PG2, etc.)
374  * @return Pointer address to PWM generator instance of type struct P33C_PWM_GENERATOR_s specified by parameter pgInstance
375  *
376  * @details
377  * This macro returns the address pointer (pgHandle) of the PWM generator
378  * Special Function Register set specified by parameter pgInstance. pgHandle
379  * can be used to assign a global variable in user code, which allows to directly
380  * read from/write to PWM registers of the selected PWM generator with zero API
381  * overhead.
382  *
383  *********************************************************************************/
384 extern volatile uint16_t* p33c_PwmGenerator_Handles[];
385 #define p33c_PwmGenerator_GetHandle(x) (struct P33C_PWM_GENERATOR_s*)p33c_PwmGenerator_Handles[(x-1)]
386 
387 
388 /* ********************************************************************************************* *
389  * API FUNCTION PROTOTYPES
390  * ********************************************************************************************* */
391 
392 /* ********************************************************************************************* *
393  * Basic PWM Module Configuration Function Call Prototypes
394  * ********************************************************************************************* */
395 
396 // PWM Module essential functions
397 extern volatile struct P33C_PWM_MODULE_s p33c_PwmModule_ConfigRead(void);
398 extern volatile uint16_t p33c_PwmModule_ConfigWrite(volatile struct P33C_PWM_MODULE_s pwmConfig);
399 
400 // PWM Module higher functions
401 extern volatile uint16_t p33c_PwmModule_Initialize(void);
402 extern volatile uint16_t p33c_PwmModule_Dispose(void);
403 
404 /* ********************************************************************************************* *
405  * Individual PWM Generator Configuration Function Call Prototypes
406  * ********************************************************************************************* */
407 
408 // PWM Generator essential functions
409 extern volatile struct P33C_PWM_GENERATOR_s p33c_PwmGenerator_ConfigRead(volatile uint16_t pgInstance);
410 extern volatile uint16_t p33c_PwmGenerator_ConfigWrite(volatile uint16_t pgInstance,
411  volatile struct P33C_PWM_GENERATOR_s pgConfig);
412 
413 extern volatile uint16_t p33c_PwmGenerator_GetInstance(volatile struct P33C_PWM_GENERATOR_s* pg);
414 extern volatile uint16_t p33c_PwmGenerator_GetGroup(volatile struct P33C_PWM_GENERATOR_s* pg);
415 
416 
417 // PWM Generator higher functions
418 extern volatile uint16_t p33c_PwmGenerator_Initialize(volatile uint16_t pgInstance);
419 extern volatile uint16_t p33c_PwmGenerator_Dispose(volatile uint16_t pgInstance);
420 
421 extern volatile uint16_t p33c_PwmGenerator_Enable(volatile struct P33C_PWM_GENERATOR_s* pg);
422 extern volatile uint16_t p33c_PwmGenerator_Disable(volatile struct P33C_PWM_GENERATOR_s* pg);
423 extern volatile uint16_t p33c_PwmGenerator_Resume(volatile struct P33C_PWM_GENERATOR_s* pg);
424 extern volatile uint16_t p33c_PwmGenerator_Suspend(volatile struct P33C_PWM_GENERATOR_s* pg);
425 
426 // Standard Generator Functions API
427 extern volatile uint16_t p33c_PwmGenerator_SetPeriod(volatile struct P33C_PWM_GENERATOR_s* pg,
428  volatile uint16_t period);
429 extern volatile uint16_t p33c_PwmGenerator_SetDutyCycle(volatile struct P33C_PWM_GENERATOR_s* pg,
430  volatile uint16_t duty);
431 extern volatile uint16_t p33c_PwmGenerator_SetDeadTimes(volatile struct P33C_PWM_GENERATOR_s* pg,
432  volatile uint16_t dead_time_rising, volatile uint16_t dead_time_falling);
433 
434 volatile uint16_t p33c_PwmGenerator_SyncGenerators(
435  volatile struct P33C_PWM_GENERATOR_s* pgHandleMother,
436  volatile uint16_t pgMotherTriggerOutput,
437  volatile struct P33C_PWM_GENERATOR_s* pgHandleChild,
438  volatile bool ChildImmediateUpdate
439  );
440 
441 /* ********************************************************************************************* *
442  * PWM GENERATOR CONFIGURATION TEMPLATES
443  * ********************************************************************************************* */
444 extern volatile struct P33C_PWM_MODULE_s pwmConfigClear;
445 extern volatile struct P33C_PWM_MODULE_s pwmConfigDefault;
446 
447 /* ********************************************************************************************* *
448  * PWM GENERATOR CONFIGURATION TEMPLATES
449  * ********************************************************************************************* */
450 extern volatile struct P33C_PWM_GENERATOR_s pgConfigClear;
451 
452 
453 #endif /* P33C_PWM_SFR_ABSTRACTION_H */
454 // END OF FILE
union P33C_PWM_GENERATOR_s::@288 PGxTRIGB
union P33C_PWM_GENERATOR_s::@275 PGxCLPCIL
union P33C_PWM_GENERATOR_s::@278 PGxFFPCIH
union P33C_PWM_GENERATOR_s::@279 PGxSPCIL
union P33C_PWM_MODULE_s::@212 vPCLKCON
union P33C_PWM_GENERATOR_s::@270 PGxIOCONH
union P33C_PWM_MODULE_s::@229 PWMEVT_C
union P33C_PWM_MODULE_s::@222 LOGCON_B
union P33C_PWM_GENERATOR_s::@286 PGxPER
union P33C_PWM_GENERATOR_s::@271 PGxEVTL
union P33C_PWM_GENERATOR_s::@266 PGxCONL
uint16_t FSCL
Definition: p33c_pwm.h:92
union P33C_PWM_GENERATOR_s::@269 PGxIOCONL
struct tagPG1CONLBITS bits
Definition: p33c_pwm.h:208
union P33C_PWM_GENERATOR_s::@272 PGxEVTH
union P33C_PWM_GENERATOR_s::@290 PGxDTL
union P33C_PWM_GENERATOR_s::@277 PGxFFPCIL
union P33C_PWM_GENERATOR_s::@281 PGxLEBL
union P33C_PWM_MODULE_s::@226 LOGCON_F
union P33C_PWM_MODULE_s::@219 vCMBTRIGL
union P33C_PWM_GENERATOR_s::@280 PGxSPCIH
union P33C_PWM_MODULE_s::@224 LOGCON_D
uint16_t MPHASE
Definition: p33c_pwm.h:104
union P33C_PWM_MODULE_s::@232 PWMEVT_F
union P33C_PWM_GENERATOR_s::@287 PGxTRIGA
union P33C_PWM_GENERATOR_s::@282 PGxLEBH
union P33C_PWM_MODULE_s::@217 vMPER
union P33C_PWM_MODULE_s::@213 vFSCL
union P33C_PWM_MODULE_s::@227 PWMEVT_A
union P33C_PWM_MODULE_s::@221 LOGCON_A
union P33C_PWM_MODULE_s::@230 PWMEVT_D
union P33C_PWM_MODULE_s::@215 vMPHASE
union P33C_PWM_MODULE_s::@218 vLFSR
union P33C_PWM_GENERATOR_s::@292 PGxCAP
union P33C_PWM_MODULE_s::@214 vFSMINPER
union P33C_PWM_GENERATOR_s::@291 PGxDTH
union P33C_PWM_GENERATOR_s::@276 PGxCLPCIH
union P33C_PWM_MODULE_s::@220 vCMBTRIGH
union P33C_PWM_MODULE_s::@216 vMDC
uint16_t MDC
Definition: p33c_pwm.h:110
union P33C_PWM_GENERATOR_s::@289 PGxTRIGC
uint16_t LFSR
Definition: p33c_pwm.h:122
union P33C_PWM_MODULE_s::@225 LOGCON_E
union P33C_PWM_MODULE_s::@223 LOGCON_C
uint16_t value
Definition: p33c_pwm.h:88
union P33C_PWM_GENERATOR_s::@285 PGxDCA
union P33C_PWM_GENERATOR_s::@268 PGxSTAT
union P33C_PWM_GENERATOR_s::@274 PGxFPCIH
struct tagPCLKCONBITS bits
Definition: p33c_pwm.h:87
union P33C_PWM_GENERATOR_s::@267 PGxCONH
uint16_t FSMINPER
Definition: p33c_pwm.h:98
union P33C_PWM_MODULE_s::@228 PWMEVT_B
union P33C_PWM_GENERATOR_s::@273 PGxFPCIL
union P33C_PWM_GENERATOR_s::@284 PGxDC
union P33C_PWM_MODULE_s::@231 PWMEVT_E
union P33C_PWM_GENERATOR_s::@283 PGxPHASE
uint16_t MPER
Definition: p33c_pwm.h:116