Hi Thomas,
You can write to any register using the custom code blocks available in the Simulink Coder. If you check in Simulink Library Browser / Simulink Coder / Custom Code, there is a block called 'System Update'. This gives fields to write functions which will appear in the generated code.
So Suppose if you write, in System Update Function Declaration Code as follows
if true
int i = 0;
i++;
end
And in System Update Function Execution Code as follows
if true
EALLOW;
EPwm1Regs.TZFRC.bit.OST = 1;
EPwm2Regs.TZFRC.bit.OST = 1;
EDIS;
end
And in System Update Function Exit Code as follows
if true
int k = 0;
k++;
end
The Generated code's step function appears as follows:
if true
/* Model step function */
void test1_step(void)
{
{
/* user code (Update function Header) */
/* System '<Root>' */
int i = 0;
i++;
/* user code (Update function Body) */
/* System '<Root>' */
EALLOW;
EPwm1Regs.TZFRC.bit.OST = 1;
EPwm2Regs.TZFRC.bit.OST = 1;
EDIS;
/* user code (Update function Trailer) */
/* System '<Root>' */
int k = 0;
k++;
}
}
end
I have written the above statements just show you the syntax. Please check the values of the registers according to your application.
Hope this helps
Best Answer