PWM
 
 
 Bean PWM
 
Pulse width modulation

Methods are user callable functions/subroutines that are means of controlling the bean functions.

Methods:

  • Enable - Enables the bean - it starts the signal generation. Events may be generated ("DisableEvent"/"EnableEvent").

      ANSIC prototype: byte Enable(void)
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode

  • Disable - Disables the bean - it stops the signal generation and events calling. When the timer is disabled, it is possible to call "ClrValue" and "SetValue" methods.

      ANSIC prototype: byte Disable(void)
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode

  • EnableEvent - Enables the events.

      ANSIC prototype: byte EnableEvent(void)
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode

  • DisableEvent - Disables the events.

      ANSIC prototype: byte DisableEvent(void)
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode

  • SetRatio8 - This method sets a new duty-cycle ratio. Ratio is expressed as an 8-bit unsigned integer number. 0 - FF value is proportional to ratio 0 - 100%.
    Note: Calculated duty depends on the timer capabilities and on the selected period.

      ANSIC prototype: byte SetRatio8(byte Ratio)
    • Ratio:byte - Ratio to set. 0 - 255 value is proportional to ratio 0 - 100%
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode

  • SetRatio16 - This method sets a new duty-cycle ratio. Ratio is expressed as a 16-bit unsigned integer number. 0 - FFFF value is proportional to ratio 0 - 100%.
    Note: Calculated duty depends on the timer possibilities and on the selected period.

      ANSIC prototype: byte SetRatio16(word Ratio)
    • Ratio:word - Ratio to set. 0 - 65535 value is proportional to ratio 0 - 100%
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode

  • SetDutyTicks16 - This method sets the new duty value of the output signal. The duty is expressed in Xtal ticks as a 16-bit unsigned integer number.

      ANSIC prototype: byte SetDutyTicks16(word Ticks)
    • Ticks:word - Duty to set in Xtal ticks
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_MATH - Overflow during evaluation
      ERR_RANGE - Parameter out of range

  • SetDutyTicks32 - This method sets the new duty value of the output signal. The duty is expressed in Xtal ticks as a 32-bit unsigned integer number.

      ANSIC prototype: byte SetDutyTicks32(dword Ticks)
    • Ticks:dword - Duty to set in Xtal ticks
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_MATH - Overflow during evaluation
      ERR_RANGE - Parameter out of range

  • SetDutyUS - This method sets the new duty value of the output signal. The duty is expressed in microseconds as a 16-bit unsigned integer number.

      ANSIC prototype: byte SetDutyUS(word Time)
    • Time:word - Duty to set [in microseconds]
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_MATH - Overflow during evaluation
      ERR_RANGE - Parameter out of range

  • SetDutyMS - This method sets the new duty value of the output signal. The duty is expressed in milliseconds as a 16-bit unsigned integer number.

      ANSIC prototype: byte SetDutyMS(word Time)
    • Time:word - Duty to set [in milliseconds]
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_MATH - Overflow during evaluation
      ERR_RANGE - Parameter out of range

  • SetDutySec - This method sets the new duty value of the output signal. The duty is expressed in seconds as a 16-bit unsigned integer number.

      ANSIC prototype: byte SetDutySec(word Time)
    • Time:word - Duty to set [in seconds]
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_MATH - Overflow during evaluation
      ERR_RANGE - Parameter out of range

  • SetDutyReal - This method sets the new duty value of the output signal. The duty is expressed in seconds as a real number. To use this method the compiler have to support floating point operations.

      ANSIC prototype: byte SetDutyReal(float Time)
    • Time:float - Duty to set [in seconds]
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_MATH - Overflow during evaluation
      ERR_RANGE - Parameter out of range

  • SetValue - This method sets (sets to "1" = "High") timer flip-flop output signal level. It allow user to directly set the output pin value (=flip-flop state), and can set the signal polarity. This method only works when the timer is disabled (Disable) otherwise it returns the error code. "ClrValue" and "SetValue" methods are used for setting the initial state.

      ANSIC prototype: byte SetValue(void)
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_ENABLED - Bean is enabled. Bean must be disabled (see "Disable method")

  • ClrValue - This method clears (sets to "0" = "Low") timer flip-flop output signal level. It allow user to directly set the output pin value (=flip-flop state), and can set the signal polarity. This method only works when the timer is disabled (Disable) otherwise it returns the error code. "ClrValue" and "SetValue" methods are used for setting the initial state.

      ANSIC prototype: byte ClrValue(void)
    • Return value:byte - Error code, possible codes:
      ERR_OK - OK
      ERR_SPEED - This device does not work in the active speed mode
      ERR_ENABLED - Bean is enabled. Bean must be disabled (see "Disable method")

  • Methods for Freescale HCS12 and HCS12X derivatives only.
    • GetShutdownStatus - Returns the actual emergency shutdown status information if the input pin is asserted or de-asserted by Input active level.
      Method is available only when Emergency interrupt service/event is enabled.

        ANSIC prototype: bool GetShutdownStatus(void)
      • Return value:bool -
        FALSE - input pin is de-asserted (status inactive)
        TRUE - input pin is asserted (status active)

    • RestartPWM - Restarts PWM after the Emergency shutdown interrupt. The PWM can only be restarted if the PWM channel input is de-asserted. PWM channels start running after corresponding counter passes next "counter == 0" phase.
      Method is available only when Emergency interrupt service/event is enabled.

        ANSIC prototype: void RestartPWM(void)


Note: Some methods can be implemented as macros.



Processor ExpertTM and Embedded BeansTM are registered trademarks of UNIS, Ltd.
©1997-2005, UNIS, Ltd.