{"id":1564,"date":"2021-04-02T12:37:03","date_gmt":"2021-04-02T12:37:03","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=1564"},"modified":"2026-08-11T13:54:25","modified_gmt":"2026-08-11T13:54:25","slug":"config-control-task-configuration","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration","title":{"rendered":"CONFIG &#8211; Control task configuration"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 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\/config-control-task-configuration\/#Key-principles-of-operation\" >Key principles of operation<\/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\/config-control-task-configuration\/#Typical-timing-configurations\" >Typical timing configurations<\/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\/config-control-task-configuration\/#Block-parameters\" >Block parameters<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Timings\" >Timings<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Code-generation\" >Code generation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Simulation\" >Simulation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Legacy-parameters\" >Legacy parameters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Simulink-block\" >Simulink block<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Signal-specification\" >Signal specification<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Mask\" >Mask<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#PLECS-block\" >PLECS block<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#Mask-2\" >Mask<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\/#C-functions\" >C++ functions<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">The CONFIG block primarily configures the main clock (CLK0) and its derivatives. Together, these clocks define the frequency and phase of the sampling events, as well as the CPU interrupt (which triggers the execution of the control task). CLK0 is indispensable to the proper operation of the hardware, as is the CONFIG block.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secondary configuration options are also appended to the CONFIG block, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The model execution purpose (Simulink only) &#8211; See <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-acg-sdk\">PN134<\/a>.<\/li>\n\n\n\n<li>The target hardware generation (Simulink only) &#8211; See <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-acg-sdk\">PN134<\/a>.<\/li>\n\n\n\n<li>Solver parameters &#8211; See below.<\/li>\n\n\n\n<li>Plant-side modeling options &#8211; See <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-imperix-power-library\">PN150<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The CONFIG block is available on all <a href=\"\/products\/power-electronic-controllers\/\">imperix controllers<\/a> and behaves identically across them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Key-principles-of-operation\"><\/span>Key principles of operation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imperix controllers have a specialized timing architecture that minimizes latency and supports networked control, as described in <a href=\"\/doc\/help\/architecture-of-imperix-controllers\">PN253<\/a>. In total, four configurable clocks are available:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CLK0<\/strong> deserves particular attention as it is always active and is statically associated with the sampling and control tasks. CLK0 is also limited to a constant frequency, thereby imposing regular sampling.<\/li>\n\n\n\n<li><strong>CLK1-CLK3<\/strong> are optional signals that can have variable frequencies. These clocks can be freely associated with different modulators (see <a href=\"https:\/\/imperix.com\/doc\/software\/clock-generators\">CLK<\/a> block).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Several clocks are derived from CLK0, the two most important of which are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The sampling clock SCLK, of frequency <strong>F<sub>SCLK<\/sub><\/strong>. It only differs from CLK0 by a configurable phase shift.<\/li>\n\n\n\n<li>The CPU interrupt, responsible for launching the control task, of frequency <strong>F<sub>CPU<\/sub><\/strong>. If needed, F<sub><sub>CPU<\/sub><\/sub> can be defined as a decimated derivative of F<sub><sub>SCLK<\/sub><\/sub> using a post-scaling coefficient.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">More information about the related resources is given in <a href=\"\/doc\/help\/architecture-of-imperix-controllers\">PN253<\/a>. Further details on the general operating principles of imperix controllers are provided in <a href=\"\/doc\/help\/operating-principles-of-imperix-controllers\">PN261<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Typical-timing-configurations\"><\/span>Typical timing configurations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When working with the <a href=\"\/software\/acg-sdk\/\">ACG SDK<\/a>, the timing configuration for sampling, control, and modulation is determined by wiring the corresponding blocks to the four time bases (i.e., CLK0-CLK3). The most common configurations are described in detail in <a href=\"https:\/\/imperix.com\/doc\/help\/timing-configuration-on-imperix-controllers\">PN259<\/a> and summarized below:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Single-rate sampling<\/strong>, in which case the control task is executed once per PWM period. Sampling, control, and modulation are all linked to CLK0, with adequate phase shifts. This case is the default configuration implemented in most examples and illustrated below:<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"285\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-274.png\" alt=\"\" class=\"wp-image-48631\" style=\"aspect-ratio:3.5930945926665716;width:518px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-274.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-274-300x83.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-274-768x214.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Basic timing configuration with both acquisition and modulation timed on CLK0.<\/figcaption><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Double-rate sampling<\/strong>, in which case the control task is executed twice per PWM period. Sampling and control are linked to CLK0 (with adequate phase shift), whereas modulation must be linked to another clock (e.g., CLK1), configured at half the frequency of CLK0. This case gives best performance, provided that sufficient CPU time is available. Read more in <a href=\"https:\/\/imperix.com\/doc\/help\/timing-configuration-on-imperix-controllers\">PN259<\/a>.<\/li>\n\n\n\n<li><strong>Advanced sampling configurations<\/strong> are also possible, typically authorizing the retrieval of multiple samples at once (data history), variable-frequency switching, or running FPGA-based control tasks at a higher rate than the CPU. Read more in <a href=\"https:\/\/imperix.com\/doc\/help\/timing-configuration-on-imperix-controllers\">PN259<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In Simulink\/PLECS, the two clocks available as outputs of the CONFIG block can be easily used to implement the scenarios described above. In practice, they serve the following two purposes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In <strong>simulation mode<\/strong>, the sampling clock <strong>SCLK<\/strong> is indispensable for accurately modeling the sampling instant and the discrete nature of the control&#8217;s execution. Similarly, <strong>CLK0<\/strong> is important for determining the relative phase of the modulation with respect to sampling, as well as phase shifts between modulators.<\/li>\n\n\n\n<li>In <strong>code generation mode<\/strong>, these signals do not generate any software variables but are analyzed by Simulink\/PLECS to map the connected resources to the physical hardware clocks.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">More details regarding how Simulink and PLECS handle these aspects are presented in&nbsp;<a href=\"https:\/\/imperix.com\/doc\/help\/simulation-essentials-simulink\">PN135<\/a>&nbsp;(Simulink) and&nbsp;<a href=\"https:\/\/imperix.com\/doc\/help\/simulation-essentials-plecs\">PN137<\/a>&nbsp;(PLECS).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Block-parameters\"><\/span>Block parameters<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 id=\"h-control-task-parameters\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Timings\"><\/span>Timings<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <strong>CLK0 frequency<\/strong> sets the main clock frequency F<sub>CLK0<\/sub>, which provides the time base for generating the ADC sampling strobe SCLK.<\/li>\n\n\n\n<li>The <strong>sampling phase<\/strong> sets the phase shift of the ADC sampling strobe SCLK relative to CLK0. The CPU control task is executed immediately once the values are available. If the modulators are also tied to CLK0, there are equivalences between phase-shifting the sampling and the modulation.<\/li>\n\n\n\n<li>The <strong>postscaler<\/strong> is used to decimate the CPU task execution rate relative to SCLK such that<br>F<sub>CPU<\/sub> = F<sub>CLK0<\/sub> \/ <code>postscaler<\/code>.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-advanced-sampling-parameters\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Code-generation\"><\/span>Code generation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <strong>Target<\/strong> is a Simulink-specific parameter that defines which hardware the code will be generated for. In PLECS,  the equivalent parameter is located in <strong>Coder<\/strong> -&gt; <strong>Coder option&#8230; <\/strong>(Ctrl+Alt+B). The two possible options are:\n<ul class=\"wp-block-list\">\n<li><em>Gen 3 (B-Box RCP3.0, B-Box Micro, B-Board PRO, TPI)<\/em><\/li>\n\n\n\n<li><em>Gen 4 (B-Box 4 only)<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">In multi-target configurations, the selection of Gen.3\/Gen.4 applies only to the master device, which is the one that receives and executes the code. Slaves do not need to be of the same generation as the master. <\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <strong>ADC acquisition delay<\/strong> corresponds to the complete conversion time, measured from the ADC sampling instant (identical for all channels) to the time the data becomes available in the CPU cache, just before the execution of the control task. This parameter can take multiple values among imperix controllers. The available options are:\n<ul class=\"wp-block-list\">\n<li><em>Auto (as fast as possible, recommended)<\/em> &#8211; This automatically selects the fastest option. This is identified at launch time, as slaves may be connected to the target.<\/li>\n\n\n\n<li><em>2 \u03bcs (all devices)<\/em> &#8211; This conservative legacy setting is available for all controllers.<\/li>\n\n\n\n<li><em>500 ns (all devices except B-Box RCP 3.0)<\/em>  &#8211; This setting is available for all controllers except B-Box 3.<\/li>\n\n\n\n<li><em>200\/368 ns (B-Box 4 only)<\/em> &#8211; This high-performance setting is only available on B-Box 4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-advanced-sampling-parameters\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Simulation\"><\/span>Simulation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Basic <strong>Solver <\/strong>parameters can be directly set in the associated tab. These come from the &#8220;Model Configuration Parameters&#8221; (Ctrl+E), which are automatically synchronized with them. These solver parameters only apply to the variable-step solver used in simulation mode.<\/li>\n\n\n\n<li>The <strong>Computation delay<\/strong> is exclusively used in simulation mode. It accurately models the total time required to compute the control task, thereby affecting the moment at which the PWM parameters are actually updated. As such, it summarizes the delays in the control dynamics (ADC acquisition, data read, control task execution, data write).<\/li>\n\n\n\n<li>The <strong>Power library<\/strong> parameters are documented in <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-imperix-power-library\">PN150<\/a>.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Because the total cycle delay cannot be known before the control code is actually run on the target, this parameter must be measured at runtime and adjusted accordingly. To this end, Cockpit&#8217;s <a href=\"https:\/\/imperix.com\/doc\/help\/cockpit-user-guide\">timing info tab<\/a> provides the necessary information. This topic is further detailed in <a href=\"\/doc\/help\/discrete-control-delay\">PN142<\/a>.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Legacy-parameters\"><\/span>Legacy parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <strong>SCLK multiplier<\/strong> parameter allows setting a multiplier such that F<sub>SCLK<\/sub> = F<sub>CLK0<\/sub> x <code>multiplier<\/code>. This parameter is maintained for legacy reasons. To obtain a sampling frequency higher than the CPU execution frequency, it is recommended to increase F<sub>CLK0<\/sub> and use the postscaler instead.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Starting from the <a href=\"https:\/\/imperix.com\/downloads\/#acg\">ACG SDK 2026.1<\/a>, the sampling configuration has been simplified for improved clarity. The previous \u201coversampling\u201d option is now deprecated. Users are encouraged to use the CLK0 with the postscaler to configure all the sampling and CPU task execution. For backward compatibility, the former &#8220;oversampling&#8221; option has been renamed to &#8220;SCLK multiplier&#8221; and moved to the Legacy tab.<\/div>\n\n\n\n<h2 id=\"h-simulink-block\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Simulink-block\"><\/span>Simulink block<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Signal-specification\"><\/span>Signal specification<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 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 first output is the PWM clock signal. It can be connected to the <code>&gt;<\/code> input of any <a href=\"https:\/\/imperix.com\/doc\/software\/pulse-width-modulator\">PWM<\/a> block to associate it with CLK0.<\/li>\n\n\n\n<li>The second output is the sampling clock signal SCLK. It must be connected to the <code>&gt;<\/code> input signal of all the <a href=\"https:\/\/imperix.com\/doc\/software\/analog-data-acquisition\">ADC<\/a> blocks.<\/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=\"109\" height=\"70\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/image-34.png\" alt=\"\" class=\"wp-image-24468\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The behavior of these signals during simulation is described in <a href=\"https:\/\/imperix.com\/doc\/help\/simulation-essentials-simulink\">PN135<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mask\"><\/span>Mask<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 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=\"418\" height=\"716\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config1-1.png\" alt=\"\" class=\"wp-image-37709\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config1-1.png 418w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config1-1-175x300.png 175w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><figcaption class=\"wp-element-caption\">Configuration of CLK0 parameters<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"418\" height=\"716\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config3.png\" alt=\"\" class=\"wp-image-37715\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config3.png 418w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config3-175x300.png 175w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><figcaption class=\"wp-element-caption\">Configuration of simulation-related parameters (1\/2)<\/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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"418\" height=\"716\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config2-1.png\" alt=\"\" class=\"wp-image-37710\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config2-1.png 418w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config2-1-175x300.png 175w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><figcaption class=\"wp-element-caption\">Selection of the target device and generation<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"418\" height=\"716\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config4-2.png\" alt=\"\" class=\"wp-image-37716\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config4-2.png 418w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config4-2-175x300.png 175w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><figcaption class=\"wp-element-caption\">Configuration of simulation-related parameters (2\/2)<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 id=\"h-plecs-block\" 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<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 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 <strong><code>Task <\/code><\/strong>output must be connected to the <em>Control Task Trigger<\/em> block. The <em>Control Task Trigger <\/em><code>nominal base sample time<\/code> must be equal to <code>postscaler<\/code>\/<code>CLOCK_0 <\/code>frequency.<\/li>\n\n\n\n<li>The <strong><code>PWM<\/code> <\/strong>clock signal must be connected to the <code>&gt;<\/code> input of the <a href=\"https:\/\/imperix.com\/doc\/software\/pulse-width-modulator\">PWM<\/a> blocks to set their frequency to the CLK0 frequency.<\/li>\n\n\n\n<li>The <strong><code>ADC<\/code> <\/strong>clock output is the sampling signal SCLK. It must be connected to the <code>&gt;<\/code> input signal of all the <a href=\"https:\/\/imperix.com\/doc\/software\/analog-data-acquisition\">ADC<\/a> blocks.<\/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-full\"><img loading=\"lazy\" decoding=\"async\" width=\"97\" height=\"91\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/config2.png\" alt=\"\" class=\"wp-image-37518\" title=\"Quick help &gt; CONFIG - Control task configuration &gt; image2020-10-27_10-45-24.png\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The behavior of these signals during simulations is described in <a href=\"https:\/\/imperix.com\/doc\/help\/simulation-essentials-plecs\">PN137<\/a>.<\/p>\n\n\n\n<h3 id=\"h-advanced-sampling-parameters-1\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mask-2\"><\/span>Mask<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 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=\"646\" height=\"405\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-247.png\" alt=\"\" class=\"wp-image-37733\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-247.png 646w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-247-300x188.png 300w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"646\" height=\"405\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-249.png\" alt=\"\" class=\"wp-image-37735\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-249.png 646w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-249-300x188.png 300w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/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=\"646\" height=\"405\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-248.png\" alt=\"\" class=\"wp-image-37734\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-248.png 646w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-248-300x188.png 300w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"646\" height=\"405\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-250.png\" alt=\"\" class=\"wp-image-37736\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-250.png 646w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-250-300x188.png 300w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Changing the <strong>postscaler <\/strong>in PLECS<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In PLECS, the <em>discretization step size<\/em> must match the CPU control task period for the generated code to behave properly. When using the <strong>postscaler<\/strong>, the <em>discretization step size<\/em> must be set to <code><strong>postscaler\/F<sub>CLK0<\/sub><\/strong><\/code>. A simulation variable can be used for convenience, as illustrated below:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">1. Create a <code>postscaler<\/code> variable in <strong>Simulation <\/strong>-&gt; <strong>Simulation parameters<\/strong> (Ctrl+E).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"549\" height=\"421\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-240.png\" alt=\"\" class=\"wp-image-37324\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-240.png 549w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-240-300x230.png 300w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">2. Use the <code>postscaler<\/code> variable in the CONFIG block mask.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"475\" height=\"420\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-242.png\" alt=\"\" class=\"wp-image-37327\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-242.png 475w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-242-300x265.png 300w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">3. Update the <em>discretization step size<\/em> in <strong>Coder <\/strong>-&gt; <strong>Coder options<\/strong> (Ctrl+Alt+B)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"590\" height=\"420\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-241.png\" alt=\"\" class=\"wp-image-37325\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-241.png 590w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-241-300x214.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 id=\"h-c-functions\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"C-functions\"><\/span>C++ functions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<style>.kt-accordion-id1564_d622a0-cb .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:1px;}.kt-accordion-id1564_d622a0-cb .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-id1564_d622a0-cb > .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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb > .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-id1564_d622a0-cb .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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1564_d622a0-cb > .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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb: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-id1564_d622a0-cb .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-id1564_d622a0-cb > .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-id1564_d622a0-cb > .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-id1564_d622a0-cb .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-id1564_d622a0-cb .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1564_d622a0-cb > .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-id1564_d622a0-cb .kt-accordion-inner-wrap{display:block;}.kt-accordion-id1564_d622a0-cb .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:1px;}.kt-accordion-id1564_d622a0-cb .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-id1564_d622a0-cb > .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-id1564_d622a0-cb > .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-id1564_d622a0-cb .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-id1564_d622a0-cb .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1564_d622a0-cb > .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-id1564_d622a0-cb kt-accordion-has-2-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-1 kt-pane1564_181146-51\"><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>ConfigureMainInterrupt <\/code>\u2014 Configure the CPU control task routine<\/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\">ConfigureMainInterrupt<\/span><span class=\"hljs-params\">(tUserSafe (*userCallback)(<span class=\"hljs-keyword\">void<\/span>), tClock clock, <span class=\"hljs-keyword\">float<\/span> phase, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> postscaler=<span class=\"hljs-number\">0<\/span>)<\/span><\/span>;<\/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 class=\"wp-block-paragraph\">Configures the user control task routine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>userCallback<\/code>: pointer on the control task callback function that is called at each interrupt<\/li>\n\n\n\n<li><code>clock<\/code>: defines the CLK used to trigger the sampling and interrupt. It must be set to <code>CLOCK_0<\/code>.<\/li>\n\n\n\n<li><code>phase<\/code>: sets the ADC sampling phase relative to <code>CLOCK_0<\/code>. The interrupt is executed right after the ADC acquisition ended.<\/li>\n\n\n\n<li><code>poscaler<\/code>: divides the CPU task frequency such as F<sub>CPU<\/sub> = F<sub>CLK0<\/sub> \/ postscaler.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The CLK0 frequency is set using the <code>Clock_SetFrequency(tClock clock, float freq);<\/code> function documented in the <a href=\"https:\/\/imperix.com\/doc\/software\/clock-generators\">CLK<\/a> software reference page.<\/div>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The CONFIG block primarily configures the main clock (CLK0) and its derivatives. Together, these clocks define the frequency and phase of the sampling events, as&#8230;<\/p>\n","protected":false},"author":7,"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":[71,69],"class_list":["post-1564","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 v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CONFIG - Control task configuration - Software documentation<\/title>\n<meta name=\"description\" content=\"This page contains the documentation of the Control task configuration block. The block configures the imperix power electronics controllers.\" \/>\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\/config-control-task-configuration\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CONFIG - Control task configuration - Software documentation\" \/>\n<meta property=\"og:description\" content=\"This page contains the documentation of the Control task configuration block. The block configures the imperix power electronics controllers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-02T12:37:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-11T13:54:25+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=\"St\u00e9phane Lovejoy, Nicolas Cherix\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Lovejoy, Nicolas Cherix\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration\"},\"author\":{\"name\":\"St\u00e9phane Lovejoy\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/97bde5cc1c65c92e731d67c17b8c50ae\"},\"headline\":\"CONFIG &#8211; Control task configuration\",\"datePublished\":\"2021-04-02T12:37:03+00:00\",\"dateModified\":\"2026-08-11T13:54:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration\"},\"wordCount\":1465,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration#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\\\/config-control-task-configuration#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration\",\"name\":\"CONFIG - Control task configuration - Software documentation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"datePublished\":\"2021-04-02T12:37:03+00:00\",\"dateModified\":\"2026-08-11T13:54:25+00:00\",\"description\":\"This page contains the documentation of the Control task configuration block. The block configures the imperix power electronics controllers.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/config-control-task-configuration#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\\\/config-control-task-configuration#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\":\"CONFIG &#8211; Control task configuration\"}]},{\"@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\\\/97bde5cc1c65c92e731d67c17b8c50ae\",\"name\":\"St\u00e9phane Lovejoy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f3db3acdae30f99346e7c5cb547260bcc5e9ff874422520d317e376c001a000?s=96&d=mm&r=gb2ee28b23ed78deae9c8f90757fee6d3\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f3db3acdae30f99346e7c5cb547260bcc5e9ff874422520d317e376c001a000?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f3db3acdae30f99346e7c5cb547260bcc5e9ff874422520d317e376c001a000?s=96&d=mm&r=g\",\"caption\":\"St\u00e9phane Lovejoy\"},\"description\":\"St\u00e9phane is a senior software development engineer at imperix. He authored and co-authored numerous software reference articles and documentation, notably related to Cockpit.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/st\u00e9phane-lovejoy-40721794\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/lovejoy\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CONFIG - Control task configuration - Software documentation","description":"This page contains the documentation of the Control task configuration block. The block configures the imperix power electronics controllers.","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\/config-control-task-configuration","og_locale":"en_US","og_type":"article","og_title":"CONFIG - Control task configuration - Software documentation","og_description":"This page contains the documentation of the Control task configuration block. The block configures the imperix power electronics controllers.","og_url":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration","og_site_name":"imperix","article_published_time":"2021-04-02T12:37:03+00:00","article_modified_time":"2026-08-11T13:54:25+00:00","og_image":[{"width":500,"height":334,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","type":"image\/png"}],"author":"St\u00e9phane Lovejoy, Nicolas Cherix","twitter_card":"summary_large_image","twitter_misc":{"Written by":"St\u00e9phane Lovejoy, Nicolas Cherix","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration"},"author":{"name":"St\u00e9phane Lovejoy","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/97bde5cc1c65c92e731d67c17b8c50ae"},"headline":"CONFIG &#8211; Control task configuration","datePublished":"2021-04-02T12:37:03+00:00","dateModified":"2026-08-11T13:54:25+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration"},"wordCount":1465,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration#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\/config-control-task-configuration#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration","url":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration","name":"CONFIG - Control task configuration - Software documentation","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","datePublished":"2021-04-02T12:37:03+00:00","dateModified":"2026-08-11T13:54:25+00:00","description":"This page contains the documentation of the Control task configuration block. The block configures the imperix power electronics controllers.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/software\/config-control-task-configuration"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration#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\/config-control-task-configuration#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":"CONFIG &#8211; Control task configuration"}]},{"@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\/97bde5cc1c65c92e731d67c17b8c50ae","name":"St\u00e9phane Lovejoy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4f3db3acdae30f99346e7c5cb547260bcc5e9ff874422520d317e376c001a000?s=96&d=mm&r=gb2ee28b23ed78deae9c8f90757fee6d3","url":"https:\/\/secure.gravatar.com\/avatar\/4f3db3acdae30f99346e7c5cb547260bcc5e9ff874422520d317e376c001a000?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4f3db3acdae30f99346e7c5cb547260bcc5e9ff874422520d317e376c001a000?s=96&d=mm&r=g","caption":"St\u00e9phane Lovejoy"},"description":"St\u00e9phane is a senior software development engineer at imperix. He authored and co-authored numerous software reference articles and documentation, notably related to Cockpit.","sameAs":["https:\/\/www.linkedin.com\/in\/st\u00e9phane-lovejoy-40721794\/"],"url":"https:\/\/imperix.com\/doc\/author\/lovejoy"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1564","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\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=1564"}],"version-history":[{"count":113,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1564\/revisions"}],"predecessor-version":[{"id":48632,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1564\/revisions\/48632"}],"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=1564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=1564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=1564"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=1564"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=1564"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=1564"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=1564"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=1564"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=1564"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=1564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}