| 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
84 struct P33C_PWM_MODULE_s {
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
206 struct P33C_PWM_GENERATOR_s {
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
P33C_PWM_GENERATOR_s::PGxTRIGB
union P33C_PWM_GENERATOR_s::@288 PGxTRIGB
P33C_PWM_GENERATOR_s::PGxCLPCIL
union P33C_PWM_GENERATOR_s::@275 PGxCLPCIL
P33C_PWM_GENERATOR_s::PHASE
uint16_t PHASE
Definition: p33c_pwm.h:279
P33C_PWM_GENERATOR_s::PGxFFPCIH
union P33C_PWM_GENERATOR_s::@278 PGxFFPCIH
P33C_PWM_GENERATOR_s::PGxSPCIL
union P33C_PWM_GENERATOR_s::@279 PGxSPCIL
P33C_PWM_MODULE_s::vPCLKCON
union P33C_PWM_MODULE_s::@212 vPCLKCON
P33C_PWM_GENERATOR_s::PGxIOCONH
union P33C_PWM_GENERATOR_s::@270 PGxIOCONH
P33C_PWM_MODULE_s::PWMEVT_C
union P33C_PWM_MODULE_s::@229 PWMEVT_C
P33C_PWM_MODULE_s::LOGCON_B
union P33C_PWM_MODULE_s::@222 LOGCON_B
P33C_PWM_GENERATOR_s::PGxPER
union P33C_PWM_GENERATOR_s::@286 PGxPER
P33C_PWM_GENERATOR_s::PGxEVTL
union P33C_PWM_GENERATOR_s::@271 PGxEVTL
P33C_PWM_GENERATOR_s::PGxCONL
union P33C_PWM_GENERATOR_s::@266 PGxCONL
P33C_PWM_MODULE_s::FSCL
uint16_t FSCL
Definition: p33c_pwm.h:92
P33C_PWM_GENERATOR_s::PGxIOCONL
union P33C_PWM_GENERATOR_s::@269 PGxIOCONL
P33C_PWM_GENERATOR_s::bits
struct tagPG1CONLBITS bits
Definition: p33c_pwm.h:208
P33C_PWM_GENERATOR_s::PER
uint16_t PER
Definition: p33c_pwm.h:295
P33C_PWM_GENERATOR_s::PGxEVTH
union P33C_PWM_GENERATOR_s::@272 PGxEVTH
P33C_PWM_GENERATOR_s::PGxDTL
union P33C_PWM_GENERATOR_s::@290 PGxDTL
P33C_PWM_GENERATOR_s::PGxFFPCIL
union P33C_PWM_GENERATOR_s::@277 PGxFFPCIL
P33C_PWM_GENERATOR_s::PGxLEBL
union P33C_PWM_GENERATOR_s::@281 PGxLEBL
P33C_PWM_MODULE_s::LOGCON_F
union P33C_PWM_MODULE_s::@226 LOGCON_F
P33C_PWM_MODULE_s::vCMBTRIGL
union P33C_PWM_MODULE_s::@219 vCMBTRIGL
P33C_PWM_GENERATOR_s::PGxSPCIH
union P33C_PWM_GENERATOR_s::@280 PGxSPCIH
P33C_PWM_MODULE_s::LOGCON_D
union P33C_PWM_MODULE_s::@224 LOGCON_D
P33C_PWM_MODULE_s::MPHASE
uint16_t MPHASE
Definition: p33c_pwm.h:104
P33C_PWM_MODULE_s::PWMEVT_F
union P33C_PWM_MODULE_s::@232 PWMEVT_F
P33C_PWM_GENERATOR_s::PGxTRIGA
union P33C_PWM_GENERATOR_s::@287 PGxTRIGA
P33C_PWM_GENERATOR_s::PGxLEBH
union P33C_PWM_GENERATOR_s::@282 PGxLEBH
P33C_PWM_GENERATOR_s::DC
uint16_t DC
Definition: p33c_pwm.h:285
P33C_PWM_MODULE_s::vMPER
union P33C_PWM_MODULE_s::@217 vMPER
P33C_PWM_MODULE_s::vFSCL
union P33C_PWM_MODULE_s::@213 vFSCL
P33C_PWM_MODULE_s::PWMEVT_A
union P33C_PWM_MODULE_s::@227 PWMEVT_A
P33C_PWM_MODULE_s::LOGCON_A
union P33C_PWM_MODULE_s::@221 LOGCON_A
P33C_PWM_MODULE_s::PWMEVT_D
union P33C_PWM_MODULE_s::@230 PWMEVT_D
P33C_PWM_MODULE_s::vMPHASE
union P33C_PWM_MODULE_s::@215 vMPHASE
P33C_PWM_MODULE_s::vLFSR
union P33C_PWM_MODULE_s::@218 vLFSR
P33C_PWM_GENERATOR_s::CAP
uint16_t CAP
Definition: p33c_pwm.h:327
P33C_PWM_GENERATOR_s::PGxCAP
union P33C_PWM_GENERATOR_s::@292 PGxCAP
P33C_PWM_MODULE_s::vFSMINPER
union P33C_PWM_MODULE_s::@214 vFSMINPER
P33C_PWM_GENERATOR_s::PGxDTH
union P33C_PWM_GENERATOR_s::@291 PGxDTH
P33C_PWM_GENERATOR_s::PGxCLPCIH
union P33C_PWM_GENERATOR_s::@276 PGxCLPCIH
P33C_PWM_MODULE_s::vCMBTRIGH
union P33C_PWM_MODULE_s::@220 vCMBTRIGH
P33C_PWM_MODULE_s::vMDC
union P33C_PWM_MODULE_s::@216 vMDC
P33C_PWM_MODULE_s::MDC
uint16_t MDC
Definition: p33c_pwm.h:110
P33C_PWM_GENERATOR_s::value
uint16_t value
Definition: p33c_pwm.h:209
P33C_PWM_GENERATOR_s::PGxTRIGC
union P33C_PWM_GENERATOR_s::@289 PGxTRIGC
P33C_PWM_MODULE_s
Definition: p33c_pwm.h:84
P33C_PWM_MODULE_s::LFSR
uint16_t LFSR
Definition: p33c_pwm.h:122
P33C_PWM_GENERATOR_s::LEBL
uint16_t LEBL
Definition: p33c_pwm.h:269
P33C_PWM_MODULE_s::LOGCON_E
union P33C_PWM_MODULE_s::@225 LOGCON_E
P33C_PWM_MODULE_s::LOGCON_C
union P33C_PWM_MODULE_s::@223 LOGCON_C
P33C_PWM_MODULE_s::value
uint16_t value
Definition: p33c_pwm.h:88
P33C_PWM_GENERATOR_s
Definition: p33c_pwm.h:206
P33C_PWM_GENERATOR_s::PGxDCA
union P33C_PWM_GENERATOR_s::@285 PGxDCA
P33C_PWM_GENERATOR_s::PGxSTAT
union P33C_PWM_GENERATOR_s::@268 PGxSTAT
P33C_PWM_GENERATOR_s::PGxFPCIH
union P33C_PWM_GENERATOR_s::@274 PGxFPCIH
P33C_PWM_MODULE_s::bits
struct tagPCLKCONBITS bits
Definition: p33c_pwm.h:87
P33C_PWM_GENERATOR_s::PGxCONH
union P33C_PWM_GENERATOR_s::@267 PGxCONH
P33C_PWM_MODULE_s::FSMINPER
uint16_t FSMINPER
Definition: p33c_pwm.h:98
P33C_PWM_MODULE_s::PWMEVT_B
union P33C_PWM_MODULE_s::@228 PWMEVT_B
P33C_PWM_GENERATOR_s::PGxFPCIL
union P33C_PWM_GENERATOR_s::@273 PGxFPCIL
P33C_PWM_GENERATOR_s::PGxDC
union P33C_PWM_GENERATOR_s::@284 PGxDC
P33C_PWM_MODULE_s::PWMEVT_E
union P33C_PWM_MODULE_s::@231 PWMEVT_E
P33C_PWM_GENERATOR_s::PGxPHASE
union P33C_PWM_GENERATOR_s::@283 PGxPHASE
P33C_PWM_GENERATOR_s::TRIG
uint16_t TRIG
Definition: p33c_pwm.h:301
P33C_PWM_MODULE_s::MPER
uint16_t MPER
Definition: p33c_pwm.h:116