Component: PWM (CAL) (Misc): Difference between revisions
Appearance
m Text replacement - "width="10%" align="center" style="background-color:#D8C9D8;"" to "width="10%" align="center" class="mtx-class-macrohead"" |
m Text replacement - "width="90%" style="background-color:#D8C9D8; color:#4B008D;"" to "width="90%" class="mtx-class-macrohead"" |
||
| Line 62: | Line 62: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ChangeFrequency''' | ||
|- | |- | ||
| colspan="2" | Advanced function for the ESP32 hardware to set the PWM output frequency. | | colspan="2" | Advanced function for the ESP32 hardware to set the PWM output frequency. | ||
| Line 81: | Line 81: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ChangePeriod''' | ||
|- | |- | ||
| colspan="2" | Change the Period (and prescaler) for this PWM Channel | | colspan="2" | Change the Period (and prescaler) for this PWM Channel | ||
| Line 105: | Line 105: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Disable''' | ||
|- | |- | ||
| colspan="2" | Disable this PWM Channel | | colspan="2" | Disable this PWM Channel | ||
| Line 119: | Line 119: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Enable''' | ||
|- | |- | ||
| colspan="2" | Enable this PWM Channel, note the ChangePeriod macro must be called at least once before calling this function | | colspan="2" | Enable this PWM Channel, note the ChangePeriod macro must be called at least once before calling this function | ||
| Line 133: | Line 133: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetList''' | ||
|- | |- | ||
| colspan="2" | Returns CHANNEL or PRESCALE list from the FCD and updates the internal property | | colspan="2" | Returns CHANNEL or PRESCALE list from the FCD and updates the internal property | ||
| Line 152: | Line 152: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetValue''' | ||
|- | |- | ||
| colspan="2" | Returns Named property Value | | colspan="2" | Returns Named property Value | ||
| Line 171: | Line 171: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDuty10Bit''' | ||
|- | |- | ||
| colspan="2" | Set the Duty Cycle for this PWM Channel. PIC/AVR - Range: 0-1023 16-bit PIC - Range: 0-65535 | | colspan="2" | Set the Duty Cycle for this PWM Channel. PIC/AVR - Range: 0-1023 16-bit PIC - Range: 0-65535 | ||
| Line 190: | Line 190: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDuty8Bit''' | ||
|- | |- | ||
| colspan="2" | Set the Duty cycle (0-255) for this PWM Channel | | colspan="2" | Set the Duty cycle (0-255) for this PWM Channel | ||
| Line 209: | Line 209: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDutyFloat''' | ||
|- | |- | ||
| colspan="2" | Advanced function for the ESP32 hardware to set the PWM duty as a percentage between 0.0 and 100.0 | | colspan="2" | Advanced function for the ESP32 hardware to set the PWM duty as a percentage between 0.0 and 100.0 | ||
| Line 228: | Line 228: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetValue''' | ||
|- | |- | ||
| colspan="2" | Sets the Value of the property PERIOD, PRESCALE or CHANNEL (if CHANNEL also updates the PORT from FCD) | | colspan="2" | Sets the Value of the property PERIOD, PRESCALE or CHANNEL (if CHANNEL also updates the PORT from FCD) | ||
| Line 253: | Line 253: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
Revision as of 14:23, 13 July 2026
| Author | Matrix TSL |
| Version | 2.2 |
| Category | Misc |
PWM component
CAL = Code Abstraction Layer - Allows one code base to run on a wide range of chips. A low level implementation giving direct access to the Pulse Width Modulation peripheral.
Version information
Library Version, Component Version, Date, Author, Info 10, 2.2, 04-11-24, BR, Added pin caption to the remap port pin selection property 11, 2.2, 04-11-24, BR, Cleaned up pin caption from none remap port pin property 12, 2.2, 08-07-25, BR, Allowed the component to skip over unimplemented PWM channels 12, 2.2, 08-07-25, BR, Added a bubble sort to the Remap Pin property to better present the Port/Pin data 13, 2.2, 18-07-25, BR, Moved bubble sort to a timer to avoid it triggering multiple times
Detailed description
The ChangePeriod macro must be called at least once before calling the Enable macro to configure and start the PWM timer resource.
Examples
No additional examples
Macro reference
ChangeFrequency
| ChangeFrequency | |
| Advanced function for the ESP32 hardware to set the PWM output frequency. | |
| Frequency | |
| New PWM desired frequency in Hz | |
| Return | |
ChangePeriod
| ChangePeriod | |
| Change the Period (and prescaler) for this PWM Channel | |
| period | |
| period value PIC/AVR: 0-255 16-bit PIC: 0-65535 | |
| prescaler | |
| prescaler 1,4,16,64 | |
| Return | |
Disable
| Disable | |
| Disable this PWM Channel | |
| Return | |
Enable
| Enable | |
| Enable this PWM Channel, note the ChangePeriod macro must be called at least once before calling this function | |
| Return | |
GetList
| GetList | |
| Returns CHANNEL or PRESCALE list from the FCD and updates the internal property | |
| Name | |
| Return | |
GetValue
| GetValue | |
| Returns Named property Value | |
| Name | |
| Return | |
SetDuty10Bit
| SetDuty10Bit | |
| Set the Duty Cycle for this PWM Channel. PIC/AVR - Range: 0-1023 16-bit PIC - Range: 0-65535 | |
| duty | |
| Duty value 0 - 1023 | |
| Return | |
SetDuty8Bit
| SetDuty8Bit | |
| Set the Duty cycle (0-255) for this PWM Channel | |
| duty | |
| duty value 0 - 255 | |
| Return | |
SetDutyFloat
| SetDutyFloat | |
| Advanced function for the ESP32 hardware to set the PWM duty as a percentage between 0.0 and 100.0 | |
| Duty | |
| Return | |
SetValue
| SetValue | |
| Sets the Value of the property PERIOD, PRESCALE or CHANNEL (if CHANNEL also updates the PORT from FCD) | |
| Name | |
| Value | |
| Return | |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_PWM.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_PWM.fcfx