10f99eeccSopenharmony_ci/*
20f99eeccSopenharmony_ci * Copyright (c) 2020 Huawei Device Co., Ltd.
30f99eeccSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
40f99eeccSopenharmony_ci * you may not use this file except in compliance with the License.
50f99eeccSopenharmony_ci * You may obtain a copy of the License at
60f99eeccSopenharmony_ci *
70f99eeccSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
80f99eeccSopenharmony_ci *
90f99eeccSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
100f99eeccSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
110f99eeccSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120f99eeccSopenharmony_ci * See the License for the specific language governing permissions and
130f99eeccSopenharmony_ci * limitations under the License.
140f99eeccSopenharmony_ci */
150f99eeccSopenharmony_ci
160f99eeccSopenharmony_ci/**
170f99eeccSopenharmony_ci * @addtogroup IotHardware
180f99eeccSopenharmony_ci * @{
190f99eeccSopenharmony_ci *
200f99eeccSopenharmony_ci * @brief Provides APIs for operating devices,
210f99eeccSopenharmony_ci * including flash, GPIO, I2C, PWM, UART, and watchdog APIs.
220f99eeccSopenharmony_ci *
230f99eeccSopenharmony_ci *
240f99eeccSopenharmony_ci *
250f99eeccSopenharmony_ci * @since 2.2
260f99eeccSopenharmony_ci * @version 2.2
270f99eeccSopenharmony_ci */
280f99eeccSopenharmony_ci
290f99eeccSopenharmony_ci/**
300f99eeccSopenharmony_ci * @file iot_pwm.h
310f99eeccSopenharmony_ci *
320f99eeccSopenharmony_ci * @brief Declares functions for operating PWM devices,
330f99eeccSopenharmony_ci * including initializing and deinitializing a PWM device and starting and stopping PWM signal output.
340f99eeccSopenharmony_ci *
350f99eeccSopenharmony_ci *
360f99eeccSopenharmony_ci *
370f99eeccSopenharmony_ci * @since 2.2
380f99eeccSopenharmony_ci * @version 2.2
390f99eeccSopenharmony_ci */
400f99eeccSopenharmony_ci
410f99eeccSopenharmony_ci#ifndef IOT_PWM_H
420f99eeccSopenharmony_ci#define IOT_PWM_H
430f99eeccSopenharmony_ci
440f99eeccSopenharmony_ci/**
450f99eeccSopenharmony_ci * @brief Initializes a PWM device.
460f99eeccSopenharmony_ci *
470f99eeccSopenharmony_ci * @param port Indicates the port number of the PWM device.
480f99eeccSopenharmony_ci * @return Returns {@link IOT_SUCCESS} if the PWM device is initialized;
490f99eeccSopenharmony_ci * returns {@link IOT_FAILURE} otherwise. For details about other return values, see the chip description.
500f99eeccSopenharmony_ci * @since 2.2
510f99eeccSopenharmony_ci * @version 2.2
520f99eeccSopenharmony_ci */
530f99eeccSopenharmony_ciunsigned int IoTPwmInit(unsigned int port);
540f99eeccSopenharmony_ci
550f99eeccSopenharmony_ci/**
560f99eeccSopenharmony_ci * @brief Deinitializes a PWM device.
570f99eeccSopenharmony_ci *
580f99eeccSopenharmony_ci * @param port Indicates the port number of the PWM device.
590f99eeccSopenharmony_ci * @return Returns {@link IOT_SUCCESS} if the PWM device is deinitialized;
600f99eeccSopenharmony_ci * returns {@link IOT_FAILURE} otherwise. For details about other return values, see the chip description.
610f99eeccSopenharmony_ci * @since 2.2
620f99eeccSopenharmony_ci * @version 2.2
630f99eeccSopenharmony_ci */
640f99eeccSopenharmony_ciunsigned int IoTPwmDeinit(unsigned int port);
650f99eeccSopenharmony_ci
660f99eeccSopenharmony_ci/**
670f99eeccSopenharmony_ci * @brief Starts PWM signal output from a specified port based on the given output frequency and duty cycle.
680f99eeccSopenharmony_ci *
690f99eeccSopenharmony_ci *
700f99eeccSopenharmony_ci *
710f99eeccSopenharmony_ci * @param port Indicates the port number of the PWM device.
720f99eeccSopenharmony_ci * @param duty Indicates the duty cycle for PWM signal output. The value ranges from 1 to 99.
730f99eeccSopenharmony_ci * @param freq Indicates the frequency for PWM signal output.
740f99eeccSopenharmony_ci * @return Returns {@link IOT_SUCCESS} if the PWM signal output is started;
750f99eeccSopenharmony_ci * returns {@link IOT_FAILURE} otherwise. For details about other return values, see the chip description.
760f99eeccSopenharmony_ci * @since 2.2
770f99eeccSopenharmony_ci * @version 2.2
780f99eeccSopenharmony_ci */
790f99eeccSopenharmony_ciunsigned int IoTPwmStart(unsigned int port, unsigned short duty, unsigned int freq);
800f99eeccSopenharmony_ci
810f99eeccSopenharmony_ci/**
820f99eeccSopenharmony_ci * @brief Stops PWM signal output from a specified port.
830f99eeccSopenharmony_ci *
840f99eeccSopenharmony_ci * @param port Indicates the port number of the PWM device.
850f99eeccSopenharmony_ci * @return Returns {@link IOT_SUCCESS} if the PWM signal output is stopped;
860f99eeccSopenharmony_ci * returns {@link IOT_FAILURE} otherwise. For details about other return values, see the chip description.
870f99eeccSopenharmony_ci * @since 2.2
880f99eeccSopenharmony_ci * @version 2.2
890f99eeccSopenharmony_ci */
900f99eeccSopenharmony_ciunsigned int IoTPwmStop(unsigned int port);
910f99eeccSopenharmony_ci
920f99eeccSopenharmony_ci#endif // IOT_PWM_H
930f99eeccSopenharmony_ci/** @} */
94