User Tools

Site Tools


eeros_architecture:hal:feature_functions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
eeros_architecture:hal:feature_functions [2017/04/30 10:31] grafeeros_architecture:hal:feature_functions [2021/05/16 09:30] – [List of Feature Function for Hardware Wrapper Libraries] ursgraf
Line 12: Line 12:
  
 The following example shows how to set the frequency of a pulse width modulated output. This  The following example shows how to set the frequency of a pulse width modulated output. This 
-is usually done just once. Later the control system defines a peripheral output objects which is connected to our HAL object. The control system will then periodically write to this output and set the duty cycle.+is usually done just once. After this you can release the object. 
 <code cpp> <code cpp>
   HAL& hal = HAL::instance();   HAL& hal = HAL::instance();
-  eeros::hal::Output<double>& pwm1 *hal.getScalableOutput("pwm1"); +  eeros::hal::Output<double>* pwm = hal.getScalableOutput("pwm1"); 
-  hal.callOutputFeature("pwm1", "setPwmFrequency", 100.0); +  hal.callOutputFeature(pwm, "setPwmFrequency", 100.0); 
-  ... +  hal.releaseOutput("pwm1");
-  PeripheralOutput<double> motorSpeed("pwm1"); +
-  ...+
 </code> </code>
  
 ===== Accessing Feature Functions from the Control System ===== ===== Accessing Feature Functions from the Control System =====
-coming soon+The control system defines a peripheral output objects which is connected to our HAL object. The control system will usually periodically write to this output and set the duty cycle. 
 +However, if you wish to change the frequency of the signal you must again use the feature function as follows: 
 +<code cpp> 
 +  PeripheralOutput<double> motorSpeed("pwm1"); 
 +  motorSpeed.callOutputFeature("setPwmFrequency", 200.0); 
 +</code> 
 + 
 +===== List of Feature Function for Hardware Wrapper Libraries ===== 
 +^library^type^function^Parameter^Description^ 
 +|bbblue-eeros|AnalogOut|freeSpin|channel|Puts a motor into a zero-throttle state allowing it to spin freely. Motor channel (1-4) or 0 for all channels. Make sure, that the peripheral output driving the motor does not run, else the set function will reenable the H-bridge.| 
 +|:::|:::|brake|channel|Connects the motor terminal pairs together which makes the motor fight against its own back EMF turning it into a brake resisting rotation. Motor channel (1-4) or 0 for all channels. Make sure, that the peripheral output driving the motor does not run, else the set function will reenable the H-bridge.| 
 +|:::|Fqd|resetFqd| |Sets the encoder position to zero. This can be useful for homing.| 
 +|:::|:::|setFqdPos|position|Sets the encoder position to a given value. This can be useful for homing.| 
 +|flink-eeros|Fqd|resetFqd| |Sets the encoder position to zero. This can be useful for homing.| 
 +|:::|Pwm|setPwmFrequency|frequency|Sets the pwm frequency (in Hz).| 
 +|:::|Pwm|setPwmDutyCycle|duty cycle|Sets the pwm duty cycle (0.0 .. 1.0).| 
 + 
 + 
  
eeros_architecture/hal/feature_functions.txt · Last modified: 2021/05/16 09:33 by ursgraf