![24fb5832595c06485e1ddd487e59533b.gif](https://img-blog.csdnimg.cn/img_convert/24fb5832595c06485e1ddd487e59533b.gif)
![fef366fd4797167226fa4dee269dd8a5.gif](https://img-blog.csdnimg.cn/img_convert/fef366fd4797167226fa4dee269dd8a5.gif)
![3197410914e687989e7ee86c26abb9ad.gif](https://img-blog.csdnimg.cn/img_convert/3197410914e687989e7ee86c26abb9ad.gif)
Simulink—常量&总线&示波器模块a.标量与矩阵的运算
在simulink中使用常量进行加减乘除计算时,系统会自动对标量进行拓展;
若将两个矩阵模块计算时维度故意弄得不一致,易知会报错;
b.总线示例
搭建出如下所示的示例,利用总线模块,在一个界面观察正弦、正弦微分、正弦积分的结果;
![bdc73e405fd44a5423336a1647c55cf8.png](https://img-blog.csdnimg.cn/img_convert/bdc73e405fd44a5423336a1647c55cf8.png)
嵌入式—AURIX入门
嵌入式—PWM进展
今天对一下库函数进行了配置
IfxGtm_Atom_PwmHl_initConfig
具体配置内容为:
/********************************************************************************************************************** * \file ATOM_PWM.c * \brief * \version V1.0.0 * \date 2020年9月9日 * \author lizheng *********************************************************************************************************************///头文件#include "IfxGtm_Atom_PwmHl.h" #include "_Utilities/Ifx_Assert.h"#include "stddef.h"#include "string.h"#include "IfxGtm_PinMap.h"void PWM_Atom3_1(void){ IfxGtm_Atom_PwmHl_Config driverConfig; IfxGtm_Atom_PwmHl driverData driverData; IfxStdIf_PwmHl pwmhl; //时钟使能 IfxGtm_enable(&MODULE_GTM); //GTM模块的使能 IfxGtm_Cmu_enableClocks(&MODULE_GTM, IFXGTM_CMU_CLKEN_CLK0); //定义时钟的分频模块 //PWMHl的初始化配置 IfxGtm_Atom_PwmHl_initConfig(&driverConfig); driverConfig.timer = NULL_PTR; driverConfig.atom = IfxGtm_Atom_3; driverConfig.ccx =&IfxGtm_ATOM3_1_TOUT19_P00_10_OUT; //开发板定义的引脚,方便进行测试功能效果// driverConfig.ccx = &IfxGtm_ATOM3_1_TOUT111_P01_3_OUT; //功能安全板所用引脚// driverConfig.coutx = &IfxGtm_ATOM3_2_TOUT112_P01_4_OUT; //功能安全板所用引脚 driverConfig.coutx = &IfxGtm_ATOM3_2_TOUT20_P00_11_OUT; driverConfig.initPins = TRUE; driverConfig.base.deadtime=10; //配置死区时间 driverConfig.base.ccxActiveState=1; driverConfig.base.coutxActiveState=0; //活跃状态 driverConfig.base.channelCount=1; driverConfig.base.outputMode =0x10U << 3; //配置输出模式:IfxPort_OutputMode_pushPull driverConfig.base.outputDriver =0; //驱动速度配置:IfxPort_PadDriver_cmosAutomotiveSpeed1 driverConfig.base.emergencyEnabled =TRUE; //是否启用紧急模式 driverConfig.base.minPulse =20; //CCX和COUTX允许的最小脉冲
接下来的大头就是
IfxGtm_Atom_PwmHl_init(&driverData, &driverConfig);IfxGtm_Atom_PwmHl_stdIfPwmHlInit(pwmhl, &driverData);
还是有很多东西不太清楚,需要慢慢摸索吧~
另外今天学习了对结构体的调用,对于一个结构体,它可能嵌套有很多层,我们需要对其内层进行调用,就需要使用‘.’一层层的调用,但是结构体内部也可能存在指针的类型,对于指针我们不能直接使用‘.’进行调用。
#include #include typedef struct birth{ int year; int month; int day;}births;typedef struct student{ long int num; births *birthday; char* name;}studentss;struct classroom{ long int num; studentss students; char* name;};int main(void){ struct classroom st2; st2.students.name = "aaa"; births aaaa; //name为指针类型,对其下一层调用,不能直接使用st2.students.name.day。而要先将其下一层结构体定义成非指针类型再调用 aaaa.day = 0; aaaa.month = 0; aaaa.year = 0; st2.students.birthday= &(aaaa); return 0;}
![d0dcc099b05602bb9da4aa9b8fbc56ca.png](https://img-blog.csdnimg.cn/img_convert/d0dcc099b05602bb9da4aa9b8fbc56ca.png)
![37cda4e9ece511bfbc2acdb79e0b4088.png](https://img-blog.csdnimg.cn/img_convert/37cda4e9ece511bfbc2acdb79e0b4088.png)
![9ab03e1718a86d91440718143b5bf531.png](https://img-blog.csdnimg.cn/img_convert/9ab03e1718a86d91440718143b5bf531.png)
![d7f08755277332f9768b3a21e7e1401e.png](https://img-blog.csdnimg.cn/img_convert/d7f08755277332f9768b3a21e7e1401e.png)
![e75d05cab734eedce655e2861d657ae0.png](https://img-blog.csdnimg.cn/img_convert/e75d05cab734eedce655e2861d657ae0.png)
![331cb6e12a8821fa62f2b9d5b023ea58.png](https://img-blog.csdnimg.cn/img_convert/331cb6e12a8821fa62f2b9d5b023ea58.png)