]> rtime.felk.cvut.cz Git - arc.git/blob - boards/hcs12x_elmicro_tboard/examples/ledmaster/config/Pwm_Cfg.h
Opened and re-saved model with latest tools (1.6.0 RC2).
[arc.git] / boards / hcs12x_elmicro_tboard / examples / ledmaster / config / Pwm_Cfg.h
1 /*\r
2 * Configuration of module: Pwm (Pwm_Cfg.h)\r
3 *\r
4 * Created by:              \r
5 * Copyright:               \r
6 *\r
7 * Configured for (MCU):    HCS12\r
8 *\r
9 * Module vendor:           ArcCore\r
10 * Generator version:       2.0.1\r
11 *\r
12 * Generated by Arctic Studio (http://arccore.com) \r
13 */\r
14 \r
15
16 #if !(((PWM_SW_MAJOR_VERSION == 1) && (PWM_SW_MINOR_VERSION == 2)) )
17 #error Pwm: Configuration file expected BSW module version to be 1.2.*
18 #endif
19
20         \r
21 \r
22 #ifndef PWM_CFG_H_\r
23 #define PWM_CFG_H_\r
24 \r
25 #define PWM_DEV_ERROR_DETECT        STD_ON\r
26 #define PWM_STATICALLY_CONFIGURED   STD_OFF\r
27 #define PWM_NOTIFICATION_SUPPORTED  STD_OFF\r
28 #define PWM_FREEZE_ENABLE           STD_OFF\r
29 \r
30 // Define what API functions to enable.\r
31 #define PWM_GET_OUTPUT_STATE_API    STD_OFF\r
32 #define PWM_SET_PERIOD_AND_DUTY_API STD_ON\r
33 #define PWM_DE_INIT_API             STD_OFF\r
34 #define PWM_SET_DUTY_CYCLE_API      STD_ON\r
35 #define PWM_SET_OUTPUT_TO_IDLE_API  STD_OFF\r
36 #define PWM_VERSION_INFO_API        STD_OFF\r
37 \r
38 \r
39 \r
40 /**\r
41  * PWM132: Switch for enabling the update of duty cycle parameter at the end\r
42  * of the current period.\r
43  *\r
44  * Note: Currently only ON mode is supported.\r
45  */\r
46 #define PWM_DUTYCYCLE_UPDATED_ENDPERIOD STD_ON\r
47 \r
48 /**\r
49  * PWM106: This is implementation specific but not all values may be valid\r
50  * within the type. This shall be chosen in order to have the most efficient\r
51  * implementation on a specific microcontroller platform.\r
52  *\r
53  * PWM106 => Pwm_ChannelType == channel id.\r
54  */\r
55 typedef uint8 Pwm_ChannelType;\r
56 \r
57 /**\r
58  * PWM070: All time units used within the API services of the PWM module shall\r
59  * be of the unit ticks.\r
60  */\r
61 typedef uint16 Pwm_PeriodType;\r
62 \r
63 /****************************************************************************\r
64  * Enumeration of channels\r
65  * Maps a symbolic name to a hardware channel\r
66  */\r
67 typedef enum {\r
68       GreenLED = 1 ,\r
69     PWM_NUMBER_OF_CHANNELS = 1\r
70 } Pwm_NamedChannelsType;\r
71 \r
72 /* 1 =PWMchannel output is high at the beginning of the period, then goes low when the duty count\r
73 is reached. */\r
74 #define POLARITY_NORMAL 1\r
75 #define POLARITY_INVERSED 0\r
76 \r
77 /**\r
78  * Since the AUTOSAR PWM specification uses a different unit for the duty,\r
79  * the following macro can be used to convert between that format and the\r
80  * driver format.\r
81  */\r
82 #define DUTY_AND_PERIOD(_duty,_period) .duty = (uint8)((uint32)((uint32)_duty*(uint32)_period)>>15), .period = _period\r
83 \r
84 \r
85 typedef struct {\r
86         /** Number of duty ticks */\r
87         uint8_t duty;\r
88         /** Length of period, in ticks */\r
89         uint8_t period;\r
90         /** Center or left align */\r
91         uint8_t centerAlign:1;\r
92         /** Polarity of the channel */\r
93         uint8_t polarity:1;\r
94         /** Scaled clock enabled */\r
95         uint8_t scaledClockEnable:1;\r
96         /** idle state */\r
97         uint8_t idleState:1;\r
98 \r
99         uint8_t reserved:4;\r
100 \r
101         Pwm_ChannelClassType class;\r
102 \r
103         Pwm_ChannelType channel;\r
104 } Pwm_ChannelConfigurationType;\r
105 \r
106 typedef enum{\r
107         PRESCALER_1 = 0,\r
108         PRESCALER_2 = 1,\r
109         PRESCALER_4 = 2,\r
110         PRESCALER_8 = 3,\r
111         PRESCALER_16 = 4,\r
112         PRESCALER_32 = 5,\r
113         PRESCALER_64 = 6,\r
114         PRESCALER_128 = 7,\r
115 }Pwm_PrescalerType;\r
116 \r
117 typedef struct {\r
118         Pwm_ChannelConfigurationType channels[PWM_NUMBER_OF_CHANNELS];\r
119         Pwm_PrescalerType busPrescalerA;\r
120         Pwm_PrescalerType busPrescalerB;\r
121         uint8_t prescalerA;\r
122         uint8_t prescalerB;\r
123 } Pwm_ConfigType;\r
124 \r
125 #endif\r
126 \r