WPILibC++  2018.4.1-20180730003225-1150-g0a0d924
 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 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
30 HAL_DigitalHandle HAL_InitializePWMPort(HAL_PortHandle portHandle,
31  int32_t* status);
32 
38 void HAL_FreePWMPort(HAL_DigitalHandle pwmPortHandle, int32_t* status);
39 
46 HAL_Bool HAL_CheckPWMChannel(int32_t channel);
47 
60 void HAL_SetPWMConfig(HAL_DigitalHandle pwmPortHandle, double maxPwm,
61  double deadbandMaxPwm, double centerPwm,
62  double deadbandMinPwm, double minPwm, int32_t* status);
63 
79 void HAL_SetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t maxPwm,
80  int32_t deadbandMaxPwm, int32_t centerPwm,
81  int32_t deadbandMinPwm, int32_t minPwm,
82  int32_t* status);
83 
97 void HAL_GetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t* maxPwm,
98  int32_t* deadbandMaxPwm, int32_t* centerPwm,
99  int32_t* deadbandMinPwm, int32_t* minPwm,
100  int32_t* status);
101 
109 void HAL_SetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle,
110  HAL_Bool eliminateDeadband, int32_t* status);
111 
118 HAL_Bool HAL_GetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle,
119  int32_t* status);
120 
130 void HAL_SetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t value,
131  int32_t* status);
132 
142 void HAL_SetPWMSpeed(HAL_DigitalHandle pwmPortHandle, double speed,
143  int32_t* status);
144 
154 void HAL_SetPWMPosition(HAL_DigitalHandle pwmPortHandle, double position,
155  int32_t* status);
156 
166 void HAL_SetPWMDisabled(HAL_DigitalHandle pwmPortHandle, int32_t* status);
167 
177 int32_t HAL_GetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t* status);
178 
187 double HAL_GetPWMSpeed(HAL_DigitalHandle pwmPortHandle, int32_t* status);
188 
197 double HAL_GetPWMPosition(HAL_DigitalHandle pwmPortHandle, int32_t* status);
198 
204 void HAL_LatchPWMZero(HAL_DigitalHandle pwmPortHandle, int32_t* status);
205 
212 void HAL_SetPWMPeriodScale(HAL_DigitalHandle pwmPortHandle, int32_t squelchMask,
213  int32_t* status);
214 
220 int32_t HAL_GetPWMLoopTiming(int32_t* status);
221 
229 uint64_t HAL_GetPWMCycleStartTime(int32_t* status);
230 #ifdef __cplusplus
231 } // extern "C"
232 #endif
233 
void HAL_SetPWMDisabled(HAL_DigitalHandle pwmPortHandle, int32_t *status)
Sets a PWM channel to be disabled.
void HAL_SetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t maxPwm, int32_t deadbandMaxPwm, int32_t centerPwm, int32_t deadbandMinPwm, int32_t minPwm, int32_t *status)
Sets the raw configuration settings for the PWM channel.
void HAL_SetPWMPosition(HAL_DigitalHandle pwmPortHandle, double position, int32_t *status)
Sets a PWM channel to the desired position value.
void HAL_SetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle, HAL_Bool eliminateDeadband, int32_t *status)
Sets if the FPGA should output the center value if the input value is within the deadband.
void HAL_FreePWMPort(HAL_DigitalHandle pwmPortHandle, int32_t *status)
Frees a PWM port.
int32_t HAL_GetPWMLoopTiming(int32_t *status)
Gets the loop timing of the PWM system.
HAL_DigitalHandle HAL_InitializePWMPort(HAL_PortHandle portHandle, int32_t *status)
Initializes a PWM port.
void HAL_LatchPWMZero(HAL_DigitalHandle pwmPortHandle, int32_t *status)
Forces a PWM signal to go to 0 temporarily.
double HAL_GetPWMPosition(HAL_DigitalHandle pwmPortHandle, int32_t *status)
Gets a position value from a PWM channel.
HAL_Bool HAL_GetPWMEliminateDeadband(HAL_DigitalHandle pwmPortHandle, int32_t *status)
Gets the current eliminate deadband value.
void HAL_SetPWMPeriodScale(HAL_DigitalHandle pwmPortHandle, int32_t squelchMask, int32_t *status)
Sets how how often the PWM signal is squelched, thus scaling the period.
double HAL_GetPWMSpeed(HAL_DigitalHandle pwmPortHandle, int32_t *status)
Gets a scaled value from a PWM channel.
void HAL_SetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t value, int32_t *status)
Sets a PWM channel to the desired value.
int32_t HAL_GetPWMRaw(HAL_DigitalHandle pwmPortHandle, int32_t *status)
Gets a value from a PWM channel.
uint64_t HAL_GetPWMCycleStartTime(int32_t *status)
Gets the pwm starting cycle time.
void HAL_SetPWMSpeed(HAL_DigitalHandle pwmPortHandle, double speed, int32_t *status)
Sets a PWM channel to the desired scaled value.
void HAL_GetPWMConfigRaw(HAL_DigitalHandle pwmPortHandle, int32_t *maxPwm, int32_t *deadbandMaxPwm, int32_t *centerPwm, int32_t *deadbandMinPwm, int32_t *minPwm, int32_t *status)
Gets the raw pwm configuration settings for the PWM channel.
void HAL_SetPWMConfig(HAL_DigitalHandle pwmPortHandle, double maxPwm, double deadbandMaxPwm, double centerPwm, double deadbandMinPwm, double minPwm, int32_t *status)
Sets the configuration settings for the PWM channel.
HAL_Bool HAL_CheckPWMChannel(int32_t channel)
Checks if a pwm channel is valid.