MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / pwm_init

Function pwm_init

bsp/loongson/ls1cdev/libraries/ls1c_pwm.c:128–200  ·  view source on GitHub ↗

* ��ʼ��PWMn * @pwm_info PWMn����ϸ��Ϣ */

Source from the content-addressed store, hash-verified

126 * @pwm_info PWMn����ϸ��Ϣ
127 */
128void pwm_init(pwm_info_t *pwm_info)
129{
130 unsigned int gpio;
131 unsigned long pwm_clk = 0; // pwmģ���ʱ��Ƶ��
132 unsigned long tmp = 0;
133 unsigned int pwm_reg_base = 0;
134 unsigned long period = 0;
135
136 // ����
137 if (NULL == pwm_info)
138 {
139 // ��ηǷ�����ֱ�ӷ���
140 return ;
141 }
142 gpio = pwm_info->gpio;
143
144 // ������Ӧ��������pwm������gpio
145 pin_set_purpose(gpio, PIN_PURPOSE_OTHER);
146
147 // ����
148 switch (gpio)
149 {
150 // ����Ҫ����
151 case LS1C_PWM0_GPIO06:
152 case LS1C_PWM1_GPIO92:
153 break;
154
155 case LS1C_PWM0_GPIO04: // gpio04�ĵ�������
156 pin_set_remap(LS1C_PWM0_GPIO04, PIN_REMAP_THIRD);
157 break;
158
159 case LS1C_PWM1_GPIO05: // gpio05�ĵ�������
160 pin_set_remap(LS1C_PWM1_GPIO05, PIN_REMAP_THIRD);
161 break;
162
163 case LS1C_PWM2_GPIO52: // gpio52�ĵ��ĸ���
164 pin_set_remap(LS1C_PWM2_GPIO52, PIN_REMAP_FOURTH);
165 break;
166
167 case LS1C_PWM2_GPIO46: // gpio46�ĵ��ĸ���
168 pin_set_remap(LS1C_PWM2_GPIO46, PIN_REMAP_FOURTH);
169 break;
170
171 case LS1C_PWM3_GPIO47: // gpio47�ĵ��ĸ���
172 pin_set_remap(LS1C_PWM3_GPIO47, PIN_REMAP_FOURTH);
173 break;
174
175 case LS1C_PWM3_GPIO53: // gpio53�ĵ��ĸ���
176 pin_set_remap(LS1C_PWM3_GPIO53, PIN_REMAP_FOURTH);
177 break;
178
179 default:
180 break;
181 }
182
183 // ����ռ�ձȺ�pwm���ڼ���Ĵ���HRC��LRC��ֵ
184 // ����64λ����ˣ�ֻ�ܵõ���32λ��linux��ȴ���Եõ�64λ�����
185 // �ݲ����ԭ���ø����������

Callers 4

_pwm_setFunction · 0.50
controlFunction · 0.50
pwminitFunction · 0.50
imx6ull_drv_pwm_initFunction · 0.50

Calls 6

pwm_get_reg_baseFunction · 0.85
pin_set_purposeFunction · 0.70
pin_set_remapFunction · 0.70
clk_get_apb_rateFunction · 0.70
reg_write_32Function · 0.70
pwm_enableFunction · 0.70

Tested by

no test coverage detected