WPILibC++  2018.4.1-20180728210220-1136-g75a6720
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
PWM.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) 2016-2018 FIRST. 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
15 extern "C" {
16 #endif
17 
24 HAL_DigitalHandle HAL_InitializePWMPort(HAL_PortHandle portHandle,
25  int32_t* status);
26 
32 void HAL_FreePWMPort(HAL_DigitalHandle pwmPortHandle, int32_t* status);
33 
40 HAL_Bool HAL_CheckPWMChannel(int32_t channel);
41 
54 void HAL_SetPWMConfig(HAL_DigitalHandle pwmPortHandle, double maxPwm,
55  double deadbandMaxPwm, double centerPwm,
56  double deadbandMinPwm, double minPwm, int32_t* status);
57 
73 void HAL_SetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t maxPwm,
74  int32_t deadbandMaxPwm, int32_t centerPwm,
75  int32_t deadbandMinPwm, int32_t minPwm,
76  int32_t* status);
77 
91 void HAL_GetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t* maxPwm,
92  int32_t* deadbandMaxPwm, int32_t* centerPwm,
93  int32_t* deadbandMinPwm, int32_t* minPwm,
94  int32_t* status);
95 
103 void HAL_SetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle,
104  HAL_Bool eliminateDeadband, int32_t* status);
105 
112 HAL_Bool HAL_GetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle,
113  int32_t* status);
114 
124 void HAL_SetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t value,
125  int32_t* status);
126 
136 void HAL_SetPWMSpeed(HAL_DigitalHandle pwmPortHandle, double speed,
137  int32_t* status);
138 
148 void HAL_SetPWMPosition(HAL_DigitalHandle pwmPortHandle, double position,
149  int32_t* status);
150 
160 void HAL_SetPWMDisabled(HAL_DigitalHandle pwmPortHandle, int32_t* status);
161 
171 int32_t HAL_GetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t* status);
172 
181 double HAL_GetPWMSpeed(HAL_DigitalHandle pwmPortHandle, int32_t* status);
182 
191 double HAL_GetPWMPosition(HAL_DigitalHandle pwmPortHandle, int32_t* status);
192 
198 void HAL_LatchPWMZero(HAL_DigitalHandle pwmPortHandle, int32_t* status);
199 
206 void HAL_SetPWMPeriodScale(HAL_DigitalHandle pwmPortHandle, int32_t squelchMask,
207  int32_t* status);
208 
214 int32_t HAL_GetPWMLoopTiming(int32_t* status);
215 
223 uint64_t HAL_GetPWMCycleStartTime(int32_t* status);
224 #ifdef __cplusplus
225 } // extern "C"
226 #endif