Digital Power Starter Kit 3 Firmware
dsPIC33C Boost Converter Voltage Mode Control Example
p33c_timer.c
1
/* Microchip Technology Inc. and its subsidiaries. You may use this software
2
* and any derivatives exclusively with Microchip products.
3
*
4
* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
5
* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
6
* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
7
* PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION
8
* WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.
9
*
10
* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
11
* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
12
* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
13
* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
14
* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS
15
* IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF
16
* ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
17
*
18
* MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE
19
* TERMS.
20
*/
21
22
// Include standard header files
23
#include <xc.h>
// include processor files - each processor file is guarded.
24
#include <stdint.h>
// include standard integer data types
25
#include <stdbool.h>
// include standard boolean data types
26
#include <stddef.h>
// include standard definition data types
27
28
#include "p33c_timer.h"
29
30
/*********************************************************************************
31
* @ingroup lib-layer-pral-properties-private-timer
32
* @var tmrConfigDefault
33
* @brief Timer Register Set reset state template
34
*
35
* @details
36
* This P33C_TIMER_MODULE_s data object provides a template of register
37
* configuration values for the 16-bit Timer peripheral.
38
*
39
* Default configuration:
40
* - all options are reset to their default state
41
*
42
*********************************************************************************/
45
volatile
struct
P33C_TIMER_MODULE_s
tmrConfigDefault
= {
46
.
TxCON
.
value
= 0x0000,
// Clear time configuration register
47
.PRx.value = 0xFFFF,
// Set period register to maximum
48
};
49
50
/*********************************************************************************
51
* @fn volatile struct P33C_TIMER_MODULE_s p33c_Timer_ConfigRead(void)
52
* @ingroup lib-layer-pral-functions-public-timer
53
* @brief Read the current configuration from the Timer special function registers
54
* @return Timer special function register data object of type struct P33C_TIMER_MODULE_s
55
*
56
* @details
57
* This function reads all Timer registers with their current configuration
58
* into a data structure of type P33C_TIMER_MODULE_s. Users can verify or
59
* modify the configuration of the Timer peripheral.
60
*
61
*********************************************************************************/
62
63
volatile
struct
P33C_TIMER_MODULE_s
p33c_Timer_ConfigRead(void)
64
{
65
volatile
struct
P33C_TIMER_MODULE_s
* tmr;
66
67
// Capture Handle: set pointer to memory address of desired PWM instance
68
tmr = p33c_TimerModule_GetHandle();
69
70
return
(*tmr);
71
}
72
73
/********************************************************************************
74
* @fn volatile uint16_t p33c_Timer_ConfigWrite(volatile struct P33C_TIMER_MODULE_s ccpConfig)
75
* @ingroup lib-layer-pral-functions-public-timer
76
* @brief Writes a user-defined configuration to the Timer registers
77
* @param tmrConfig Timer special function register data object of type struct P33C_TIMER_MODULE_s
78
* @return 0 = failure, writing to Timer registers was not successful
79
* @return 1 = success, writing to Timer registers was successful
80
*
81
* @details
82
* This function writes a user-defined Timer configuration of type
83
* P33C_TIMER_MODULE_s to the Timer registers. The individual register
84
* configurations have to be set in user-code before calling this function.
85
* To simplify the configuration process of standard functions, this driver
86
* provides templates, which can be loaded and written directly.
87
*
88
*********************************************************************************/
89
90
volatile
uint16_t p33c_Timer_ConfigWrite(
volatile
struct
P33C_TIMER_MODULE_s
tmrConfig)
91
{
92
volatile
uint16_t retval=1;
93
volatile
struct
P33C_TIMER_MODULE_s
* tmr;
94
95
// Set pointer to memory address of desired Timer
96
tmr = p33c_TimerModule_GetHandle();
97
*tmr = tmrConfig;
98
99
return
(retval);
100
101
}
102
103
// end of file
P33C_TIMER_MODULE_s::TxCON
union P33C_TIMER_MODULE_s::@336 TxCON
P33C_TIMER_MODULE_s::value
uint16_t value
Definition:
p33c_timer.h:42
P33C_TIMER_MODULE_s
Definition:
p33c_timer.h:38
tmrConfigDefault
volatile struct P33C_TIMER_MODULE_s tmrConfigDefault
Definition:
p33c_timer.c:45
dpsk_boost_vmc.X
sources
common
p33c_pral
p33c_timer.c
© 2021, Microchip Technology Inc.