模块所在位置
修改配置文件
生成代码


这个代码的效果是通过ADC的软件触发,实现GPIO(LED)的翻转。
/** File: adc_software_trigger_s32k14x.c** Code generated for Simulink model 'adc_software_trigger_s32k14x'.** Model version : 1.102* Simulink Coder version : 9.3 (R2020a) 18-Nov-2019* C/C++ source code generated on : Sat Nov 12 15:27:28 2022** Target selection: mbd_s32k.tlc* Embedded hardware selection: ARM Compatible->ARM Cortex* Code generation objectives: Unspecified* Validation result: Not run*/#include "adc_software_trigger_s32k14x.h"#include "adc_software_trigger_s32k14x_private.h"/* Named constants for Chart: '<Root>/Chart' */#define adc_software_IN_NO_ACTIVE_CHILD ((uint8_T)0U)#define adc_software_trigger_s32k1_IN_A ((uint8_T)1U)#define adc_software_trigger_s32k_IN_A1 ((uint8_T)2U)/* Exported data definition *//* Volatile memory section *//* Definition for custom storage class: Volatile */volatile uint32_T Potentiometer_Value; /* '<Root>/Data Store Memory' *//* Block signals (default storage) */B_adc_software_trigger_s32k14_T adc_software_trigger_s32k14x_B;/* Block states (default storage) */DW_adc_software_trigger_s32k1_T adc_software_trigger_s32k14x_DW;/* Real-time model */RT_MODEL_adc_software_trigger_T adc_software_trigger_s32k14x_M_;RT_MODEL_adc_software_trigger_T *const adc_software_trigger_s32k14x_M =&adc_software_trigger_s32k14x_M_;/* Model step function */void adc_software_trigger_s32k14x_step(void){/* S-Function (adc_s32k_start): '<Root>/ADC_Start' */{adc_chan_config_t adc0_chan_cfg = {.interruptEnable = false,.channel = ADC_INPUTCHAN_EXT12};/* Initialize channel configuration of ADC0. */ADC_DRV_ConfigChan(0, 0, &adc0_chan_cfg);uint16_t result;/* Get conversion result of ADC0 */ADC_DRV_WaitConvDone(0);ADC_DRV_GetChanResult(0, 0, &result);adc_software_trigger_s32k14x_B.ADC_Start = result;}/* DataStoreWrite: '<Root>/Data Store Write' */Potentiometer_Value = adc_software_trigger_s32k14x_B.ADC_Start;/* Chart: '<Root>/Chart' *//* Gateway: Chart *//* During: Chart */if (adc_software_trigger_s32k14x_DW.is_active_c3_adc_software_trigg == 0U) {/* Entry: Chart */adc_software_trigger_s32k14x_DW.is_active_c3_adc_software_trigg = 1U;/* Entry Internal: Chart *//* Transition: '<S1>:1' */adc_software_trigger_s32k14x_DW.is_c3_adc_software_trigger_s32k =adc_software_trigger_s32k1_IN_A;adc_software_trigger_s32k14x_B.A = true;} else if (adc_software_trigger_s32k14x_DW.is_c3_adc_software_trigger_s32k ==adc_software_trigger_s32k1_IN_A) {/* During 'A': '<S1>:3' *//* Transition: '<S1>:7' */adc_software_trigger_s32k14x_B.A = false;adc_software_trigger_s32k14x_DW.is_c3_adc_software_trigger_s32k =adc_software_trigger_s32k_IN_A1;} else {/* During 'A1': '<S1>:6' *//* Transition: '<S1>:8' */adc_software_trigger_s32k14x_DW.is_c3_adc_software_trigger_s32k =adc_software_trigger_s32k1_IN_A;adc_software_trigger_s32k14x_B.A = true;}/* End of Chart: '<Root>/Chart' *//* S-Function (gpio_s32k_output): '<Root>/Digital_Output' *//* GPOPORTD0 Data Signal Update */if (adc_software_trigger_s32k14x_B.A) {PINS_DRV_SetPins(PTD, 1UL<<0);} else {PINS_DRV_ClearPins(PTD, 1UL<<0);}}/* Model initialize function */void adc_software_trigger_s32k14x_initialize(void){/* Registration code *//* initialize error status */rtmSetErrorStatus(adc_software_trigger_s32k14x_M, (NULL));/* block I/O */(void) memset(((void *) &adc_software_trigger_s32k14x_B), 0,sizeof(B_adc_software_trigger_s32k14_T));/* states (dwork) */(void) memset((void *)&adc_software_trigger_s32k14x_DW, 0,sizeof(DW_adc_software_trigger_s32k1_T));/* custom states */Potentiometer_Value = 0U;/* Start for S-Function (adc_s32k_config): '<Root>/ADC_Config' */{const adc_converter_config_t adc0_cfg = {.clockDivide = ADC_CLK_DIVIDE_1,.sampleTime = 28.0,.resolution = ADC_RESOLUTION_12BIT,.inputClock = ADC_CLK_ALT_1,.trigger = ADC_TRIGGER_SOFTWARE,.pretriggerSel = ADC_PRETRIGGER_SEL_SW,.triggerSel = ADC_TRIGGER_SEL_PDB,.dmaEnable = false,.voltageRef = ADC_VOLTAGEREF_VREF,.continuousConvEnable = false,.supplyMonitoringEnable = false};const adc_compare_config_t adc0_cmp_cfg = {.compareEnable = false,.compareGreaterThanEnable = false,.compareRangeFuncEnable = false,.compVal1 = 0,.compVal2 = 0};const adc_average_config_t adc0_avrg_cfg = {.hwAvgEnable = false,.hwAverage = ADC_AVERAGE_4};/* Enable ADC0 clock */PCC_SetClockMode(PCC, PCC_ADC0_CLOCK, false);/* Set ADC0 clock source */PCC_SetPeripheralClockControl(PCC, PCC_ADC0_CLOCK, true, CLK_SRC_SPLL, 0, 0);/* Enable ADC0 clock */PCC_SetClockMode(PCC, PCC_ADC0_CLOCK, true);ADC_DRV_Reset(0);/* Configure ADC0 */ADC_DRV_ConfigConverter(0, &adc0_cfg);ADC_DRV_SetSwPretrigger(0,ADC_SW_PRETRIGGER_DISABLED);ADC_DRV_ConfigHwCompare(0, &adc0_cmp_cfg);ADC_DRV_ConfigHwAverage(0, &adc0_avrg_cfg);/* Do calibration before initialize the ADC0. */ADC_DRV_AutoCalibration(0);}/* Start for S-Function (gpio_s32k_output): '<Root>/Digital_Output' */{/* Enable clock for PORTD */PCC_SetClockMode(PCC, PCC_PORTD_CLOCK, true);/* Configure the output port init structure. */const pin_settings_config_t gpioPORTDPin0 = {.base = PORTD,.pinPortIdx = 0,.pullConfig = PORT_INTERNAL_PULL_NOT_ENABLED,.passiveFilter = false,.driveSelect = PORT_LOW_DRIVE_STRENGTH,.mux = PORT_MUX_AS_GPIO,.pinLock = false,.intConfig = PORT_DMA_INT_DISABLED,.clearIntFlag = true,.gpioBase = PTD,.direction = GPIO_OUTPUT_DIRECTION,.initValue = 0U};/* Initialize GPIPORTD0. */PINS_DRV_Init(1, &gpioPORTDPin0);}/* Start for S-Function (fm_s32k_config): '<Root>/FreeMaster_Config' *//* Initialize FreeMaster. */freemaster_interface_init();freemaster_interface_isr_init();FMSTR_Init();/* SystemInitialize for Chart: '<Root>/Chart' */adc_software_trigger_s32k14x_DW.is_active_c3_adc_software_trigg = 0U;adc_software_trigger_s32k14x_DW.is_c3_adc_software_trigger_s32k =adc_software_IN_NO_ACTIVE_CHILD;adc_software_trigger_s32k14x_B.A = false;}/* Model terminate function */void adc_software_trigger_s32k14x_terminate(void){/* (no terminate code required) */}/** File trailer for generated code.** [EOF]*/

