📄 demo1103_io_ad_pwm3_v7.c
字号:
/* Sum: '<S8>/Sum2' */
Demo1103_IO_AD_PWM3_V7_B.Sum2 = Demo1103_IO_AD_PWM3_V7_B.I +
Demo1103_IO_AD_PWM3_V7_B.k_p;
/* Gain: '<S8>/f_k_i' */
Demo1103_IO_AD_PWM3_V7_B.f_k_i = Demo1103_IO_AD_PWM3_V7_P.f_k_i_Gain *
Demo1103_IO_AD_PWM3_V7_B.Switch_a;
/* Gain: '<S9>/Slider Gain' incorporates:
* Constant: '<S3>/Duty_in_c'
*/
Demo1103_IO_AD_PWM3_V7_B.SliderGain_k =
Demo1103_IO_AD_PWM3_V7_P.SliderGain_Gain_c *
Demo1103_IO_AD_PWM3_V7_P.Duty_in_c_Value;
/* Saturate: '<S3>/Saturation3' */
rtsaturate_U0DataInY0Container = rt_SATURATE
(Demo1103_IO_AD_PWM3_V7_B.SliderGain_k,
Demo1103_IO_AD_PWM3_V7_P.Saturation3_LowerSat,
Demo1103_IO_AD_PWM3_V7_P.Saturation3_UpperSat);
Demo1103_IO_AD_PWM3_V7_B.Saturation3 = rtsaturate_U0DataInY0Container;
}
/* DiscreteTransferFcn Block: '<S8>/PT2' */
{
Demo1103_IO_AD_PWM3_V7_DWork.PT2_DSTATE = Demo1103_IO_AD_PWM3_V7_B.Sum3 +
Demo1103_IO_AD_PWM3_V7_P.PT2_A*Demo1103_IO_AD_PWM3_V7_DWork.PT2_DSTATE;
}
/* DiscreteTransferFcn Block: '<S8>/PT1' */
{
Demo1103_IO_AD_PWM3_V7_DWork.PT1_DSTATE = Demo1103_IO_AD_PWM3_V7_B.Sum2 +
Demo1103_IO_AD_PWM3_V7_P.PT1_A*Demo1103_IO_AD_PWM3_V7_DWork.PT1_DSTATE;
}
/* DiscreteTransferFcn Block: '<S8>/DT1' */
{
Demo1103_IO_AD_PWM3_V7_DWork.DT1_DSTATE = Demo1103_IO_AD_PWM3_V7_B.f_k_d +
Demo1103_IO_AD_PWM3_V7_P.DT1_A*Demo1103_IO_AD_PWM3_V7_DWork.DT1_DSTATE;
}
/* DiscreteTransferFcn Block: '<S8>/DT2' */
{
Demo1103_IO_AD_PWM3_V7_DWork.DT2_DSTATE = Demo1103_IO_AD_PWM3_V7_B.f_k_d1
+ Demo1103_IO_AD_PWM3_V7_P.DT2_A*Demo1103_IO_AD_PWM3_V7_DWork.DT2_DSTATE;
}
/* DiscreteTransferFcn Block: '<S8>/I' */
{
Demo1103_IO_AD_PWM3_V7_DWork.I_DSTATE = Demo1103_IO_AD_PWM3_V7_B.f_k_i +
Demo1103_IO_AD_PWM3_V7_P.I_A*Demo1103_IO_AD_PWM3_V7_DWork.I_DSTATE;
}
}
/* S-Function Block: <Root>/PWM2 (c28xpwm) */
{
EvaRegs.CMPR1 = (uint16_T) ((EvaRegs.T1PR / 100) *
Demo1103_IO_AD_PWM3_V7_B.toggle1);
EvaRegs.CMPR2 = (uint16_T) ((EvaRegs.T1PR / 100) *
Demo1103_IO_AD_PWM3_V7_B.toggle2);
}
/* S-Function Block: <Root>/ADC (c28xadc) */
{
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1;// Sequencer reset
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 0x1;// Software start of conversion
asm(" nop" );
asm(" nop" );
asm(" nop" );
asm(" nop" );
while (AdcRegs.ADCST.bit.SEQ1_BSY==0x1) {
} //Wait for Sequencer Busy bit to clear
Demo1103_IO_AD_PWM3_V7_B.ADC = (AdcRegs.ADCRESULT0) >> 4;
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1;// Sequencer reset
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;// Clear INT SEQ1 bit
}
/* Gain: '<Root>/Gain' */
Demo1103_IO_AD_PWM3_V7_B.Gain_a = (uint32_T)
Demo1103_IO_AD_PWM3_V7_P.Gain_Gain_k * (uint32_T)
Demo1103_IO_AD_PWM3_V7_B.ADC;
/* DataTypeConversion: '<Root>/Data Type Conversion2' */
Demo1103_IO_AD_PWM3_V7_B.DataTypeConversion2 = ldexp((real_T)
Demo1103_IO_AD_PWM3_V7_B.Gain_a, (int16_T)-12L);
/* Memory: '<S5>/Memory' */
Demo1103_IO_AD_PWM3_V7_B.Memory =
Demo1103_IO_AD_PWM3_V7_DWork.Memory_PreviousInput;
/* Gain: '<S5>/Gain' */
Demo1103_IO_AD_PWM3_V7_B.Gain = Demo1103_IO_AD_PWM3_V7_P.Gain_Gain *
Demo1103_IO_AD_PWM3_V7_B.Memory;
/* Gain: '<S5>/Gain1' */
Demo1103_IO_AD_PWM3_V7_B.Gain1 = Demo1103_IO_AD_PWM3_V7_P.Gain1_Gain *
Demo1103_IO_AD_PWM3_V7_B.Memory1;
/* RelationalOperator: '<S5>/Relational Operator' incorporates:
* Constant: '<S2>/Constant'
*/
Demo1103_IO_AD_PWM3_V7_B.RelationalOperator =
(Demo1103_IO_AD_PWM3_V7_B.Memory1 >= Demo1103_IO_AD_PWM3_V7_P.Constant_Value);
/* Switch: '<S5>/Switch' incorporates:
* Constant: '<S5>/Constant1'
*/
if (Demo1103_IO_AD_PWM3_V7_B.RelationalOperator) {
Demo1103_IO_AD_PWM3_V7_B.Switch = Demo1103_IO_AD_PWM3_V7_B.Gain1;
} else {
Demo1103_IO_AD_PWM3_V7_B.Switch = Demo1103_IO_AD_PWM3_V7_P.Constant1_Value_b;
}
/* Sum: '<S5>/Sum' incorporates:
* Constant: '<S5>/Constant'
*/
Demo1103_IO_AD_PWM3_V7_B.Sum = (Demo1103_IO_AD_PWM3_V7_B.Switch +
Demo1103_IO_AD_PWM3_V7_P.Constant_Value_h) +
Demo1103_IO_AD_PWM3_V7_B.Memory1;
/* DiscreteFilter Block: '<S4>/Discrete Filter'
*/
Demo1103_IO_AD_PWM3_V7_B.DiscreteFilter =
Demo1103_IO_AD_PWM3_V7_P.DiscreteFilter_D*
Demo1103_IO_AD_PWM3_V7_B.DataTypeConversion2;
Demo1103_IO_AD_PWM3_V7_B.DiscreteFilter +=
Demo1103_IO_AD_PWM3_V7_P.DiscreteFilter_C*
Demo1103_IO_AD_PWM3_V7_DWork.DiscreteFilter_DSTATE;
/* Update for Memory: '<S5>/Memory1' */
Demo1103_IO_AD_PWM3_V7_DWork.Memory1_PreviousInput =
Demo1103_IO_AD_PWM3_V7_B.Sum;
/* Update for Memory: '<S5>/Memory' */
Demo1103_IO_AD_PWM3_V7_DWork.Memory_PreviousInput =
Demo1103_IO_AD_PWM3_V7_B.Gain;
/* DiscreteFilter Block: '<S4>/Discrete Filter' */
{
Demo1103_IO_AD_PWM3_V7_DWork.DiscreteFilter_DSTATE =
Demo1103_IO_AD_PWM3_V7_B.DataTypeConversion2 +
(Demo1103_IO_AD_PWM3_V7_P.DiscreteFilter_A)*
Demo1103_IO_AD_PWM3_V7_DWork.DiscreteFilter_DSTATE;
}
}
/* Model initialize function */
void Demo1103_IO_AD_PWM3_V7_initialize(boolean_T firstTime)
{
(void)firstTime;
/* Registration code */
/* initialize error status */
rtmSetErrorStatus(Demo1103_IO_AD_PWM3_V7_M, (const char_T *)0);
/* block I/O */
(void) memset(((void *) &Demo1103_IO_AD_PWM3_V7_B),0,
sizeof(BlockIO_Demo1103_IO_AD_PWM3_V7));
{
int_T i;
void *pVoidBlockIORegion;
pVoidBlockIORegion = (void *)(&Demo1103_IO_AD_PWM3_V7_B.Memory1);
for (i = 0; i < 9; i++) {
((real_T*)pVoidBlockIORegion)[i] = 0.0;
}
pVoidBlockIORegion = (void *)(&Demo1103_IO_AD_PWM3_V7_B.PT2);
for (i = 0; i < 31; i++) {
((real_T*)pVoidBlockIORegion)[i] = 0.0;
}
}
/* states (dwork) */
(void) memset((char_T *) &Demo1103_IO_AD_PWM3_V7_DWork,0,
sizeof(D_Work_Demo1103_IO_AD_PWM3_V7));
{
int_T i;
real_T *dwork_ptr = (real_T *)
&Demo1103_IO_AD_PWM3_V7_DWork.DiscreteFilter_DSTATE;
for (i = 0; i < 9; i++) {
dwork_ptr[i] = 0.0;
}
}
EALLOW;
GpioMuxRegs.GPAMUX.all = 0x00FF; // EVA PWM 1-6 pins
config_PWM_A (3750.0,1,1,"INPUT_PORT",0.0,
1,"INPUT_PORT",0.0,0,"SPECIFY_VIA_DIALOG",0.0,1638,
0, 0, 0, 0, 1, 0);
EDIS;
InitAdc();
config_ADC_A (0U, 0U, 0U, 0U, 0U);
/* Start for DataStoreMemory: '<Root>/Data Store Memory' */
Demo1103_IO_AD_PWM3_V7_DWork.Flag_data =
Demo1103_IO_AD_PWM3_V7_P.DataStoreMemory_InitialVal;
/* InitializeConditions for Memory: '<S5>/Memory1' */
Demo1103_IO_AD_PWM3_V7_DWork.Memory1_PreviousInput =
Demo1103_IO_AD_PWM3_V7_P.Memory1_X0;
/* InitializeConditions for Memory: '<S5>/Memory' */
Demo1103_IO_AD_PWM3_V7_DWork.Memory_PreviousInput =
Demo1103_IO_AD_PWM3_V7_P.Memory_X0;
}
/* Model terminate function */
void Demo1103_IO_AD_PWM3_V7_terminate(void)
{
/* (no terminate code required) */
}
/* File trailer for Real-Time Workshop generated code.
*
* [EOF]
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -