{"id":1609,"date":"2021-04-02T12:49:43","date_gmt":"2021-04-02T12:49:43","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=1609"},"modified":"2026-03-30T13:39:24","modified_gmt":"2026-03-30T13:39:24","slug":"carrier-based-pwm","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm","title":{"rendered":"CB-PWM &#8211; Carrier-based PWM"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\/#Parameters\" >Parameters<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\/#Simulink-block\" >Simulink block<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\/#PLECS-block\" >PLECS block<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\/#C-functions\" >C++ functions<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>The Carrier-based PWM block generates PWM signals based on one of the 4 <strong>carrier<\/strong> shape illustrated below: triangle, sawtooth, inverted triangle, inverted sawtooth. When using the&nbsp;<strong>single-rate&nbsp;<\/strong>update configuration, the computed duty-cycle is synchronously applied at the end of the PWM period. With the&nbsp;<strong>double-rate&nbsp;<\/strong>update and a triangle carrier, the duty-cycle is updated twice per period: in the middle and at the end (in other words when the carrier reaches its maximum and when it reaches its minimum).<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-212-1024x557.png\" alt=\"\" class=\"wp-image-2502\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-212-1024x557.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-212-300x163.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-212-768x417.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-212-1536x835.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-212-2048x1113.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Triangle carrier<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-213-1024x557.png\" alt=\"\" class=\"wp-image-2503\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-213-1024x557.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-213-300x163.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-213-768x417.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-213-1536x835.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-213-2048x1113.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Inverted triangle carrier<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-214-1024x557.png\" alt=\"\" class=\"wp-image-2504\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-214-1024x557.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-214-300x163.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-214-768x417.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-214-1536x835.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-214-2048x1113.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Sawtooth carrier<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-215-1024x557.png\" alt=\"\" class=\"wp-image-2506\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-215-1024x557.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-215-300x163.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-215-768x417.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-215-1536x835.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-215-2048x1113.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Inverted sawtooth carrier<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>The&nbsp;<strong>frequency<\/strong>&nbsp;of the carrier is configured by connecting the CB-PWM block to a&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/clock-generators\">CLK block<\/a>. The frequency can even be tuned during the control execution as explained in the&nbsp;<a href=\"https:\/\/imperix.com\/doc\/help\/variable-frequency-operation\">Variable frequency operation <\/a> page.<\/p>\n\n\n\n<p>The&nbsp;<strong>duty-cycle<\/strong> and the <strong>phase-shift<\/strong>&nbsp;of the carrier can be changed during execution, independently for each PWM block.<\/p>\n\n\n\n<p>Like the other PWM blocks, it supports&nbsp;<strong>dead time generation<\/strong>&nbsp;and can be&nbsp;<strong>activated or deactivated<\/strong>. More information is available on the&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/pulse-width-modulator\">PWM page<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">High-resolution PWM (HR-PWM) on B-Box 4<\/h4>\n\n\n\n<p>On Gen 3 devices (<a href=\"https:\/\/imperix.com\/products\/control\/rapid-prototyping-controller\/\">B-Box RCP<sup>3.0<\/sup><\/a>, <a href=\"https:\/\/imperix.com\/products\/control\/power-inverter-controller\/\">B-Box Micro<\/a>, <a href=\"https:\/\/imperix.com\/products\/control\/inverter-control-board\/\">B-Board PRO<\/a> and <a href=\"https:\/\/imperix.com\/products\/power\/programmable-inverter\/\">TPI8032<\/a>) the CB-PWM resolution is limited by the base clock of 250 MHz. On the Gen 4 <a href=\"https:\/\/imperix.com\/products\/control\/rcp-controller\/\">B-Box 4<\/a> however, a higher resolution is achieved by using phase-shifted derivatives of the 250 MHz, which effectively increases the resolution on the signal edges by a factor of 16.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th class=\"has-text-align-center\" data-align=\"center\">duty-cycle<br>resolution <br>(sawtooth)<\/th><th class=\"has-text-align-center\" data-align=\"center\">duty-cycle<br>resolution <br>(triangle)<\/th><th class=\"has-text-align-center\" data-align=\"center\">phase shift<br>resolution<\/th><\/tr><\/thead><tbody><tr><td><strong>High-resolution<\/strong><br><a href=\"https:\/\/imperix.com\/products\/control\/rcp-controller\/\">B-Box 4<\/a> only<\/td><td class=\"has-text-align-center\" data-align=\"center\">250 ps<\/td><td class=\"has-text-align-center\" data-align=\"center\">500 ps<\/td><td class=\"has-text-align-center\" data-align=\"center\">250 ps<\/td><\/tr><tr><td><strong>Standard resolution<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\">4 ns<\/td><td class=\"has-text-align-center\" data-align=\"center\">8 ns<\/td><td class=\"has-text-align-center\" data-align=\"center\">4 ns<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Resolution specification of the CB-PWM block<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">High-resolution mode is automatically applied to the parameter (either duty-cycle or phase) that is configured to be real-time tunable (set as block input). If both are real-time tunable, the phase takes priority.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Parameters\"><\/span>Parameters<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The parameters\u00a0<strong>output mode<\/strong>,\u00a0<strong>addressed channel\/lane<\/strong>,\u00a0<strong>dead-time<\/strong>\u00a0and\u00a0<strong>show \u201dactivate\u201d<\/strong> input\u00a0are common to all PWM blocks and are further documented on the\u00a0<a href=\"https:\/\/imperix.com\/doc\/software\/pwm-pulse-width-modulation\">PWM page<\/a>.<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DOPWMDirectoutputPWM-Parameters\">Addressing<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Device ID<\/strong>&nbsp;selects which B-Box\/B-Board to address when used in a multi-device configuration.<\/li>\n\n\n\n<li><strong>Output mode<\/strong>&nbsp;selects between a single PWM signal or complementary signals with a dead-time.<\/li>\n\n\n\n<li><strong>Addressed channel(s)&nbsp;or&nbsp;Addressed lane(s)<\/strong>&nbsp;(vectorizable) selects the PWM outputs to address.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Modulation<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Carrier type<\/strong>&nbsp;selects the type of carrier (<em>TRIANGLE<\/em>, <em>SAWTOOTH<\/em>, <em>INVTRIANGLE<\/em>, or <em>INVSAWTOOTH<\/em>)<\/li>\n\n\n\n<li><strong>Duty-cycle(s)&nbsp;<\/strong>(vectorizable) configures the duty cycle. It can be tuned in real-time using the&nbsp;D&nbsp;signal input or be configured only once from the block mask parameter.<\/li>\n\n\n\n<li><strong>Phase(s)&nbsp;<\/strong>(vectorizable) configures the carrier phase-shift relative to the CLK. It can be tuned in real-time using the&nbsp;P&nbsp;signal input or be configured only once from the block mask parameter.<\/li>\n\n\n\n<li><strong>Show \u201dactivate\u201d input<\/strong>&nbsp;makes the&nbsp;A&nbsp;signal input visible. If not checked, the CB-PWM block is active by default.<\/li>\n\n\n\n<li><strong>PWM parameters update rate<\/strong>&nbsp;selects when the duty-cycle and phase parameters are applied.\n<ul class=\"wp-block-list\">\n<li><em>Single-rate<\/em>: they are applied at the end of the carrier period.<\/li>\n\n\n\n<li><em>Double-rate<\/em>: they are applied twice per carrier period: when the carrier reaches its lowest point and when it reaches its highest point. (for TRIANGLE and INVTRIANGLE carriers only)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Simulation output type<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>PWM signals<\/em>: outputs are logic gate signals 0 or 1.<\/li>\n\n\n\n<li><em>Duty-cycle<\/em>: outputs are duty-cycles between 0 and 1. This option is only used with averaged power switch models.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Complementary signal parameters<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dead-time duration<\/strong>&nbsp;configures the dead-time duration if the&nbsp;Output mode&nbsp;is set to&nbsp;<em>Dual (PWM_H + PWM_L)<\/em>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"simulink-block\"><span class=\"ez-toc-section\" id=\"Simulink-block\"><\/span>Simulink block<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Signal specification<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>The input signal&nbsp;<code><strong>D<\/strong><\/code>&nbsp;is the duty-cycle (0.0 to 1.0)<\/li>\n\n\n\n<li>The input signal&nbsp;<code><strong>P<\/strong><\/code>&nbsp;is the carrier phase-shift relative to the CLK (0.0 to 1.0)<\/li>\n\n\n\n<li>The input signal&nbsp;<code><strong>&gt;<\/strong><\/code>&nbsp;is the clock input and must be connected to the CONFIG block or to an independent CLK<\/li>\n\n\n\n<li>The input&nbsp;<code><strong>A<\/strong><\/code>&nbsp;allows the activation (&gt;0) or deactivation (&lt;=0) of the PWM output(s).<\/li>\n\n\n\n<li>The output(s) is\/are the generated PWM signal(s), according to the selected&nbsp;<strong>Output mode<\/strong>. The output(s) is\/are only used in simulation.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"96\" height=\"72\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-216.png\" alt=\"\" class=\"wp-image-2519\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DOPWMDirectoutputPWM-Parameters\">Mask<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"407\" height=\"803\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/CB-PWM-mask-simulink-1.png\" alt=\"\" class=\"wp-image-33916\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/CB-PWM-mask-simulink-1.png 407w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/CB-PWM-mask-simulink-1-152x300.png 152w\" sizes=\"auto, (max-width: 407px) 100vw, 407px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"407\" height=\"803\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/CB-PWM-mask-simulink-2.png\" alt=\"\" class=\"wp-image-33918\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/CB-PWM-mask-simulink-2.png 407w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/CB-PWM-mask-simulink-2-152x300.png 152w\" sizes=\"auto, (max-width: 407px) 100vw, 407px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"PLECS-block\"><\/span>PLECS block<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Signal specification<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>The input signal&nbsp;<code><strong>D<\/strong><\/code>&nbsp;is the duty-cycle (0.0 to 1.0)<\/li>\n\n\n\n<li>The input signal&nbsp;<code><strong>P<\/strong><\/code>&nbsp;is the carrier phase-shift relative to the CLK (0.0 to 1.0)<\/li>\n\n\n\n<li>The input signal&nbsp;<code><strong>&gt;<\/strong><\/code>&nbsp;is the clock input and must be connected to the CONFIG block or to an independent CLK<\/li>\n\n\n\n<li>The input&nbsp;<code>A<\/code>&nbsp;allows the activation (&gt;0) or deactivation (&lt;=0) of the PWM output(s).<\/li>\n\n\n\n<li>The target outport(s) (only visible at the atomic subsystem level) is\/are the generated PWM signal(s), according to the selected&nbsp;<strong>Output mode<\/strong>. The output(s) is\/are only used in the simulation.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"93\" height=\"81\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-219.png\" alt=\"\" class=\"wp-image-2522\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"SBPWMSandboxPWM-Parameters\">Mask<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"432\" height=\"406\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-30.png\" alt=\"\" class=\"wp-image-30729\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-30.png 432w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-30-300x282.png 300w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"432\" height=\"406\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-32.png\" alt=\"\" class=\"wp-image-30731\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-32.png 432w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-32-300x282.png 300w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"432\" height=\"406\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-31.png\" alt=\"\" class=\"wp-image-30730\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-31.png 432w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/08\/image-31-300x282.png 300w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"SBPWMSandboxPWM-C++functions\"><span class=\"ez-toc-section\" id=\"C-functions\"><\/span>C++ functions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"SBPWMSandboxPWM-FunctionsspecifictothesandboxPWM\">Functions specific to the carrier-based PWM<\/h4>\n\n\n<style>.kt-accordion-id1609_44ae29-a6 .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:1px;}.kt-accordion-id1609_44ae29-a6 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px;}.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;font-size:16px;line-height:24px;letter-spacing:0px;font-weight:bold;text-transform:none;color:var(--global-palette3, #1A202C);padding-top:12px;padding-right:10px;padding-bottom:8px;padding-left:16px;}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6 .kt-blocks-accordion-header:focus-visible{color:#444444;background:#ffffff;border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id1609_44ae29-a6 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:var(--global-palette3, #1A202C);background:var(--global-palette9, #ffffff);border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_44ae29-a6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette9, #ffffff);}@media all and (max-width: 1024px){.kt-accordion-id1609_44ae29-a6 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6 .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}}@media all and (max-width: 1024px){.kt-accordion-id1609_44ae29-a6 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}@media all and (max-width: 767px){.kt-accordion-id1609_44ae29-a6 .kt-accordion-inner-wrap{display:block;}.kt-accordion-id1609_44ae29-a6 .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:1px;}.kt-accordion-id1609_44ae29-a6 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1609_44ae29-a6 .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id1609_44ae29-a6 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1609_44ae29-a6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id1609_44ae29-a6 kt-accordion-has-17-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-arrow kt-accodion-icon-side-left\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-10 kt-pane1609_1b9022-dd\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_ConfigureClock <\/code><strong>\u2014 <\/strong>Select a CLOCK<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_ConfigureClock<\/span><span class=\"hljs-params\">(tPwmOutput output, tClock clock, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Connects a clock generator to the modulator.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p>See:&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/clock-generators\">CLK &#8211; Clock generator<\/a><\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>clock<\/code>: the clock to use (<em>CLOCK_0<\/em>,&nbsp;<em>CLOCK_1<\/em>,&nbsp;<em>CLOCK_2<\/em>&nbsp;or&nbsp;<em>CLOCK_3<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-11 kt-pane1609_34fb92-69\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_ConfigureCarrier <\/code><strong>\u2014 Select the carrier shape<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_ConfigureCarrier<\/span><span class=\"hljs-params\">(tPwmOutput output, tPwmCarrier carrier, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Selects the carrier shape of the modulator.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>carrier<\/code>: the carrier to use (<em>TRIANGLE<\/em>,&nbsp;<em>SAWTOOTH<\/em>,&nbsp;<em>INVTRIANGLE<\/em>, or&nbsp;<em>INVSAWTOOTH<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-12 kt-pane1609_1e6320-33\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_ConfigureUpdateRate <\/code><strong>\u2014 Select an update rate<\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_ConfigureUpdateRate<\/span><span class=\"hljs-params\">(tPwmOutput output, tPwmRate rate, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Select when the duty-cycle and phase parameters are applied.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Single-rate<\/em>: they are applied at the end of the carrier period.<\/li>\n\n\n\n<li><em>Double-rate<\/em>: they are applied twice per carrier period: when the carrier reaches its lowest point and when it reaches its highest point. (for&nbsp;<em>TRIANGLE<\/em>&nbsp;and&nbsp;<em>INVTRIANGLE<\/em>&nbsp;carriers only)<\/li>\n<\/ul>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>rate<\/code>: the update rate to use (<em>SINGLE_RATE<\/em>&nbsp;or&nbsp;<em>DOUBLE_RATE<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-16 kt-pane1609_d510d6-60\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_SetPhase <\/code><strong>\u2014 <\/strong>Set the carrier phase shift<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_SetPhase<\/span><span class=\"hljs-params\">(tPwmOutput output, <span class=\"hljs-keyword\">float<\/span> phase, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the carrier phase-shift relative to the CLK.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>&nbsp;or in the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>phase<\/code>: the carrier phase-shift relative to the CLK (0.0 to 1.0)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-17 kt-pane1609_d25456-fa\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_SetDutyCycle <\/code><strong>\u2014 <\/strong>Set the duty cycle<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_SetDutyCycle<\/span><span class=\"hljs-params\">(tPwmOutput output, <span class=\"hljs-keyword\">float<\/span> dutyCycle, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the duty-cycle.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>&nbsp;or in the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>dutyCycle<\/code>: the duty-cycle (0.0 to 1.0)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Functions common to all PWM drivers<\/h4>\n\n\n\n<p>These functions are common to all PWM blocks. Further documentation is available on the&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/pwm-pulse-width-modulation\">PWM page<\/a>.<\/p>\n\n\n<style>.kt-accordion-id1609_1c9641-5a .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:1px;}.kt-accordion-id1609_1c9641-5a .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px;}.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;font-size:16px;line-height:24px;letter-spacing:0px;font-weight:bold;text-transform:none;color:var(--global-palette3, #1A202C);padding-top:12px;padding-right:10px;padding-bottom:8px;padding-left:16px;}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a .kt-blocks-accordion-header:focus-visible{color:#444444;background:#ffffff;border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id1609_1c9641-5a .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:var(--global-palette3, #1A202C);background:var(--global-palette9, #ffffff);border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1609_1c9641-5a:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette9, #ffffff);}@media all and (max-width: 1024px){.kt-accordion-id1609_1c9641-5a .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}}@media all and (max-width: 1024px){.kt-accordion-id1609_1c9641-5a .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}@media all and (max-width: 767px){.kt-accordion-id1609_1c9641-5a .kt-accordion-inner-wrap{display:block;}.kt-accordion-id1609_1c9641-5a .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:1px;}.kt-accordion-id1609_1c9641-5a .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1609_1c9641-5a .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id1609_1c9641-5a .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1609_1c9641-5a > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id1609_1c9641-5a kt-accordion-has-13-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-arrow kt-accodion-icon-side-left\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-10 kt-pane1609_6cc477-50\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_ConfigureOutputMode <\/code><strong>\u2014 <strong>Select the P<\/strong><\/strong>WM <strong><strong>output mod<\/strong><\/strong>e<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_ConfigureOutputMode<\/span><span class=\"hljs-params\">(tPwmOutput output, tPwmOutMode outMode, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Selects the PWM output mode.<\/p>\n\n\n\n<p>If the output mode selected is&nbsp;<em>COMPLEMENTARY<\/em>, a dead-time must be configured using the&nbsp;<code>CbPwm_ConfigureDeadTime()<\/code>&nbsp;function.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>outMode<\/code>: the output mode to use (<em>COMPLEMENTARY<\/em>,&nbsp;<em>INDEPENDENT<\/em>&nbsp;or&nbsp;<em>PWMH_ACTIVE<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-11 kt-pane1609_c82a01-15\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_ConfigureDeadTime <\/code><strong>\u2014 <strong>Configure the dead time<\/strong><\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_ConfigureDeadTime<\/span><span class=\"hljs-params\">(tPwmOutput output, <span class=\"hljs-keyword\">float<\/span> deadTime, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the dead-time duration if the output mode is set as&nbsp;<em>COMPLEMENTARY.<\/em><\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>outMode<\/code>: the output mode to use (<em>COMPLEMENTARY<\/em>,&nbsp;<em>INDEPENDENT<\/em>&nbsp;or&nbsp;<em>PWMH_ACTIVE<\/em>)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-12 kt-pane1609_24c827-d6\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_Activate <\/code><strong>\u2014 <strong>Activate the PWM outputs<\/strong><\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_Activate<\/span><span class=\"hljs-params\">(tPwmOutput output, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Activates the addressed PWM output(s). If the addressed PWM output has been set as&nbsp;<em>COMPLEMENTARY<\/em>&nbsp;or&nbsp;<em>PWMH_ACTIVE<\/em>&nbsp;this function acts on both outputs.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>&nbsp;or in the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-13 kt-pane1609_d879ae-4d\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>CbPwm_Deactivate <\/code><strong>\u2014 <strong><strong>Deactivate the PWM outputs<\/strong><\/strong><\/strong><\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">CbPwm_Deactivate<\/span><span class=\"hljs-params\">(tPwmOutput output, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Deactivates the addressed PWM output(s). If the addressed PWM output has been set as&nbsp;<em>COMPLEMENTARY<\/em>&nbsp;or&nbsp;<em>PWMH_ACTIVE<\/em>&nbsp;this function acts on both outputs.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>&nbsp;or in the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.3\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>output<\/code>: the PWM channel or lane to address<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The Carrier-based PWM block generates PWM signals based on one of the 4 carrier shape illustrated below: triangle, sawtooth, inverted triangle, inverted sawtooth. When using&#8230;<\/p>\n","protected":false},"author":4,"featured_media":33315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[16],"tags":[],"software-environments":[105,103,104],"provided-results":[],"related-products":[50,31,32,92,166,51,113,114,112,111,110],"guidedreadings":[],"tutorials":[],"user-manuals":[],"coauthors":[70],"class_list":["post-1609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","software-environments-c-plus-plus","software-environments-matlab","software-environments-plecs","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp","related-products-b-box-micro","related-products-b-box-rcp-3-0","related-products-cpp-sdk","related-products-mmc","related-products-motor","related-products-peb","related-products-pm","related-products-tpi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Carrier-based PWM block - imperix Simulink, PLECS, C++ documentation<\/title>\n<meta name=\"description\" content=\"The Carrier-based PWM block generates PWM signals based on a triangle or a sawtooth carrier. Its frequency can be tuned in real-time.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Carrier-based PWM block - imperix Simulink, PLECS, C++ documentation\" \/>\n<meta property=\"og:description\" content=\"The Carrier-based PWM block generates PWM signals based on a triangle or a sawtooth carrier. Its frequency can be tuned in real-time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-02T12:49:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-30T13:39:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"334\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Beno\u00eet Steinmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Beno\u00eet Steinmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm\"},\"author\":{\"name\":\"Beno\u00eet Steinmann\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/a69a3bda75b05d0923cc76d7268cc94f\"},\"headline\":\"CB-PWM &#8211; Carrier-based PWM\",\"datePublished\":\"2021-04-02T12:49:43+00:00\",\"dateModified\":\"2026-03-30T13:39:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm\"},\"wordCount\":1348,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"articleSection\":[\"Software reference\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm\",\"name\":\"Carrier-based PWM block - imperix Simulink, PLECS, C++ documentation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"datePublished\":\"2021-04-02T12:49:43+00:00\",\"dateModified\":\"2026-03-30T13:39:24+00:00\",\"description\":\"The Carrier-based PWM block generates PWM signals based on a triangle or a sawtooth carrier. Its frequency can be tuned in real-time.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"width\":500,\"height\":334},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/carrier-based-pwm#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software reference\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/software\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CB-PWM &#8211; Carrier-based PWM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/a69a3bda75b05d0923cc76d7268cc94f\",\"name\":\"Beno\u00eet Steinmann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/22a9252907f853f91d07b143dfcc84f6ec0cc31f6b72408b503a7026eed5b109?s=96&d=mm&r=g3b3f3d8e66019ebcb2848094940b98c0\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/22a9252907f853f91d07b143dfcc84f6ec0cc31f6b72408b503a7026eed5b109?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/22a9252907f853f91d07b143dfcc84f6ec0cc31f6b72408b503a7026eed5b109?s=96&d=mm&r=g\",\"caption\":\"Beno\u00eet Steinmann\"},\"description\":\"Benoit is an embedded systems expert and the leader of software and firmware developments at imperix. On the knowledge base, he is the author of numerous software reference documents.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/benoit-steinmann\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/steinmann\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Carrier-based PWM block - imperix Simulink, PLECS, C++ documentation","description":"The Carrier-based PWM block generates PWM signals based on a triangle or a sawtooth carrier. Its frequency can be tuned in real-time.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm","og_locale":"en_US","og_type":"article","og_title":"Carrier-based PWM block - imperix Simulink, PLECS, C++ documentation","og_description":"The Carrier-based PWM block generates PWM signals based on a triangle or a sawtooth carrier. Its frequency can be tuned in real-time.","og_url":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm","og_site_name":"imperix","article_published_time":"2021-04-02T12:49:43+00:00","article_modified_time":"2026-03-30T13:39:24+00:00","og_image":[{"width":500,"height":334,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","type":"image\/png"}],"author":"Beno\u00eet Steinmann","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Beno\u00eet Steinmann","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm"},"author":{"name":"Beno\u00eet Steinmann","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/a69a3bda75b05d0923cc76d7268cc94f"},"headline":"CB-PWM &#8211; Carrier-based PWM","datePublished":"2021-04-02T12:49:43+00:00","dateModified":"2026-03-30T13:39:24+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm"},"wordCount":1348,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","articleSection":["Software reference"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm","url":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm","name":"Carrier-based PWM block - imperix Simulink, PLECS, C++ documentation","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","datePublished":"2021-04-02T12:49:43+00:00","dateModified":"2026-03-30T13:39:24+00:00","description":"The Carrier-based PWM block generates PWM signals based on a triangle or a sawtooth carrier. Its frequency can be tuned in real-time.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/software\/carrier-based-pwm"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","width":500,"height":334},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Software reference","item":"https:\/\/imperix.com\/doc\/category\/software"},{"@type":"ListItem","position":3,"name":"CB-PWM &#8211; Carrier-based PWM"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/a69a3bda75b05d0923cc76d7268cc94f","name":"Beno\u00eet Steinmann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/22a9252907f853f91d07b143dfcc84f6ec0cc31f6b72408b503a7026eed5b109?s=96&d=mm&r=g3b3f3d8e66019ebcb2848094940b98c0","url":"https:\/\/secure.gravatar.com\/avatar\/22a9252907f853f91d07b143dfcc84f6ec0cc31f6b72408b503a7026eed5b109?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/22a9252907f853f91d07b143dfcc84f6ec0cc31f6b72408b503a7026eed5b109?s=96&d=mm&r=g","caption":"Beno\u00eet Steinmann"},"description":"Benoit is an embedded systems expert and the leader of software and firmware developments at imperix. On the knowledge base, he is the author of numerous software reference documents.","sameAs":["https:\/\/www.linkedin.com\/in\/benoit-steinmann\/"],"url":"https:\/\/imperix.com\/doc\/author\/steinmann"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=1609"}],"version-history":[{"count":36,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1609\/revisions"}],"predecessor-version":[{"id":44508,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1609\/revisions\/44508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/33315"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=1609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=1609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=1609"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=1609"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=1609"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=1609"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=1609"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=1609"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=1609"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=1609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}