1/*
2 * File: ert_main.c
3 *
4 * Code generated for Simulink model 'rtwdemo_pmsmfoc'.
5 *
6 * Model version : 1.2949
7 * Simulink Coder version : 8.7 (R2014b) 11-Aug-2014
8 * C/C++ source code generated on : Sat Oct 11 02:05:41 2014
9 *
10 * Target selection: ert.tlc
11 * Embedded hardware selection: ARM Compatible->ARM Cortex
12 * Code generation objective: Execution efficiency
13 * Validation result: Not run
14 */
15
16#include "rtwdemo_pmsmfoc.h"
17#include "rtwtypes.h"
18
19volatile int IsrOverrun = 0;
20static boolean_T OverrunFlag = 0;
21void rt_OneStep(void)
22{
23 /* '<Root>/motor_on' */
24 static uint16_T motor_on = 0U;
25
26 /* '<Root>/command_type' */
27 static EnumCommandType command_type = Torque;
28
29 /* '<Root>/command_value' */
30 static real32_T current_request = 0.0F;
31
32 /* '<Root>/sensors' */
33 static SENSORS_STRUCT sensors = {
34 {
35 0U, 0U }
36 , /* adc_phase_currents */
37 0U, /* encoder_valid */
38 0U /* encoder_counter */
39 } ;
40
41 /* '<Root>/error' */
42 static EnumErrorType error;
43
44 /* '<Root>/pwm_compare' */
45 static uint16_T pwm_compare[3];
46
47 /* Check for overrun. Protect OverrunFlag against preemption */
48 if (OverrunFlag++) {
49 IsrOverrun = 1;
50 OverrunFlag--;
51 return;
52 }
53
54 __enable_irq();
55 error = Controller(motor_on, command_type, current_request, &sensors,
56 pwm_compare);
57
58 /* Get model outputs here */
59 __disable_irq();
60 OverrunFlag--;
61}
62
63int main(void)
64{
65 volatile boolean_T runModel = 1;
66 float modelBaseRate = 4.0E-5;
67 float systemClock = 48;
68 ((void) 0);
69 Controller_Init();
70 ARMCM_SysTick_Config(modelBaseRate);
71 runModel =
72 ((void*) 0) == (NULL);
73 __enable_irq();
74 ;
75 while (runModel) {
76 runModel =
77 ((void*) 0) == (NULL);
78 }
79
80 /* Disable rt_OneStep() here */
81#ifdef EXT_MODE
82
83 wait_ms(1000);
84
85#endif
86
87 (void) systemClock;
88 return 0;
89}
90
91/*
92 * File trailer for generated code.
93 *
94 * [EOF]
95 */
96