]> rtime.felk.cvut.cz Git - arc.git/blob - examples/pwm_node/config/hcs12x_elmicro_tboard/Pwm_Cfg.h
Added pwm_node example for hcs12
[arc.git] / examples / pwm_node / config / hcs12x_elmicro_tboard / Pwm_Cfg.h
1 /*\r
2  * Configuration of module Pwm (Pwm_Cfg.h)\r
3  *\r
4  * Created by: Arccore AB\r
5  * Configured for (MCU): HCS12\r
6  *\r
7  * Module vendor: ArcCore\r
8  * Module version: 2.0.1\r
9  *\r
10  * \r
11  * Generated by Arctic Studio (http://arccore.com) \r
12  *           on Wed Dec 01 16:24:11 CET 2010\r
13  */\r
14 \r
15
16 #if (PWM_SW_MAJOR_VERSION != 1) 
17 #error "Pwm: Configuration file version differs from BSW version."
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 STD_ON\r
32 #define PWM_SET_PERIOD_AND_DUTY STD_ON\r
33 #define PWM_DEINIT STD_OFF\r
34 #define PWM_DUTYCYCLE STD_ON\r
35 #define PWM_SET_OUTPUT_TO_IDLE 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       PWM_CHANNEL_1 = 1 ,\r
69       PWM_CHANNEL_2 = 0 ,\r
70     PWM_NUMBER_OF_CHANNELS = 2\r
71 } Pwm_NamedChannelsType;\r
72 \r
73 /* 1 =PWMchannel output is high at the beginning of the period, then goes low when the duty count\r
74 is reached. */\r
75 #define POLARITY_NORMAL 1\r
76 #define POLARITY_INVERSED 0\r
77 \r
78 /**\r
79  * Since the AUTOSAR PWM specification uses a different unit for the duty,\r
80  * the following macro can be used to convert between that format and the\r
81  * driver format.\r
82  */\r
83 #define DUTY_AND_PERIOD(_duty,_period) .duty = (uint8)((uint32)((uint32)_duty*(uint32)_period)>>15), .period = _period\r
84 \r
85 \r
86 typedef struct {\r
87         /** Number of duty ticks */\r
88         uint8_t duty;\r
89         /** Length of period, in ticks */\r
90         uint8_t period;\r
91         /** Center or left align */\r
92         uint8_t centerAlign:1;\r
93         /** Polarity of the channel */\r
94         uint8_t polarity:1;\r
95         /** Scaled clock enabled */\r
96         uint8_t scaledClockEnable:1;\r
97         /** idle state */\r
98         uint8_t idleState:1;\r
99 \r
100         uint8_t reserved:4;\r
101 \r
102         Pwm_ChannelClassType class;\r
103 \r
104         Pwm_ChannelType channel;\r
105 } Pwm_ChannelConfigurationType;\r
106 \r
107 typedef enum{\r
108         PRESCALER_1 = 0,\r
109         PRESCALER_2 = 1,\r
110         PRESCALER_4 = 2,\r
111         PRESCALER_8 = 3,\r
112         PRESCALER_16 = 4,\r
113         PRESCALER_32 = 5,\r
114         PRESCALER_64 = 6,\r
115         PRESCALER_128 = 7,\r
116 }Pwm_PrescalerType;\r
117 \r
118 typedef struct {\r
119         Pwm_ChannelConfigurationType channels[PWM_NUMBER_OF_CHANNELS];\r
120         Pwm_PrescalerType busPrescalerA;\r
121         Pwm_PrescalerType busPrescalerB;\r
122         uint8_t prescalerA;\r
123         uint8_t prescalerB;\r
124 } Pwm_ConfigType;\r
125 \r
126 #endif\r
127 \r