blob: 6db7bdc08939655bd2a630075b6864f3f3f35d95 [file] [log] [blame]
Brian Silvermanf7f267a2017-02-04 16:16:08 -08001/*----------------------------------------------------------------------------*/
2/* Copyright (c) FIRST 2016-2017. All Rights Reserved. */
3/* Open Source Software - may be modified and shared by FRC teams. The code */
4/* must be accompanied by the FIRST BSD license file in the root directory of */
5/* the project. */
6/*----------------------------------------------------------------------------*/
7
8#pragma once
9
10#include <stdint.h>
11
12#include "HAL/Types.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18HAL_DigitalHandle HAL_InitializePWMPort(HAL_PortHandle portHandle,
19 int32_t* status);
20void HAL_FreePWMPort(HAL_DigitalHandle pwmPortHandle, int32_t* status);
21
22HAL_Bool HAL_CheckPWMChannel(int32_t channel);
23
24void HAL_SetPWMConfig(HAL_DigitalHandle pwmPortHandle, double maxPwm,
25 double deadbandMaxPwm, double centerPwm,
26 double deadbandMinPwm, double minPwm, int32_t* status);
27void HAL_SetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t maxPwm,
28 int32_t deadbandMaxPwm, int32_t centerPwm,
29 int32_t deadbandMinPwm, int32_t minPwm,
30 int32_t* status);
31void HAL_GetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t* maxPwm,
32 int32_t* deadbandMaxPwm, int32_t* centerPwm,
33 int32_t* deadbandMinPwm, int32_t* minPwm,
34 int32_t* status);
35void HAL_SetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle,
36 HAL_Bool eliminateDeadband, int32_t* status);
37HAL_Bool HAL_GetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle,
38 int32_t* status);
39void HAL_SetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t value,
40 int32_t* status);
41void HAL_SetPWMSpeed(HAL_DigitalHandle pwmPortHandle, double speed,
42 int32_t* status);
43void HAL_SetPWMPosition(HAL_DigitalHandle pwmPortHandle, double position,
44 int32_t* status);
45void HAL_SetPWMDisabled(HAL_DigitalHandle pwmPortHandle, int32_t* status);
46int32_t HAL_GetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t* status);
47double HAL_GetPWMSpeed(HAL_DigitalHandle pwmPortHandle, int32_t* status);
48double HAL_GetPWMPosition(HAL_DigitalHandle pwmPortHandle, int32_t* status);
49void HAL_LatchPWMZero(HAL_DigitalHandle pwmPortHandle, int32_t* status);
50void HAL_SetPWMPeriodScale(HAL_DigitalHandle pwmPortHandle, int32_t squelchMask,
51 int32_t* status);
52int32_t HAL_GetLoopTiming(int32_t* status);
53#ifdef __cplusplus
54}
55#endif