当前位置:网站首页>2837xd代码生成模块学习(3)——IIC、eCAN、SCI、Watchdog、eCAP模块
2837xd代码生成模块学习(3)——IIC、eCAN、SCI、Watchdog、eCAP模块
2022-07-02 06:35:00 【Quikk】
模型链接: 链接
1 IIC 模块
1.1 模型功能
实现向地址0x50的从机写入数据(100 ,1),然后检测当写入数据发生变化时,就开始从(从机地址为0x50)的空间读取刚刚写入的数据。
可以看到上图中主要分为三大部分:1.全局变量的定义。2.写入数据。3.读取数据。
1.全局变量的定义使用的是Data Store Memory模块,与之对应的还有Data Store Write和Data Store Read模块用来读写开辟的空间,其Data Store Memory中设置如下:
2.写入数据子模块如下图,这里使用的是Enable Subsystem,与Trigger Subsystem的不同在于Enable Subsystem是电平触发而Trigger Subsystem是边沿触发。这里就是将数据和地址进行拼接然后给Transmit模块进行发送。
3.读取数据模块是发送给设备地址,然后do…while循环中等待I2caRegs.I2CFFTX.all标志准备好(TXFFST中会显示接收到数据的长度),然后使能接收模块进行接收数据,之后将数据存储在全局变量A和B中
do…while模块中情形:
2 eCAN模块
eCAN模块分为接收模块和发送模块,接收模块参数如下(目前进入接收中断服务函数执行,还有点问题。):
eCAN接收模块自带一个函数触发执行的接口,在搭建模型中,我接入了一个LED翻转的子模块。即当接收到消息后,LED会进行翻转。
eCAN发送模块参数如下,因为CAN的数据帧最大是8个字节长度,所以一定要注意给他的数据最大是一个无符号64位的数据。
这里构建了八字节发送和四字节发送两中数据发送的端口。这里要注意一下,需要修改Constant模块的输出类型。
之后需要在Configuration Parameters 中对eCAN_A进行相关的设置:
2.1 实验结果
这里使用的是硬件使用的是USB转CAN,软件是CANTest上位机进行的测试,可以看到发送ID为0x01的数据,dsp接收后LED进行翻转。然后观测数据是存在大端/小端存储的现象的这一点需要注意。串口调试助手中也可以清晰的看到数据格式,起始标准+数据长度+ID+数据的格式。
3 SCI模块
中断函数是SCIA的中断服务号:9.1。内部如下
这个实现了SCI接收中断,将发送的数据进行返回。
SCI模块也有接收和发送两个模块:接收模块配置:
发送模块配置:
之后需要在Configuration Parameters 中对SCI_A进行相关的设置:
3.1 实验结果
可以看到发送的数据可以正常返回。
4 看门狗模块
看门狗模块在实际程序中可以有效的防止程序跑飞。在Simulink中需要首先在Configuration Parameters中进行相关的设置,下图中的周期就是看门狗的溢出时间(即若在此时间内没有进行喂狗操作,则会复位整个系统)。
对应的在Simulink库文件中存在,Watchdog模块(用来喂狗)这里采用-1的意思是与仿真步长时间一样。在这里也可以设置喂狗时间,但是一定要注意这个喂狗时间必须小于上述在Target hardware resources中设置的时间,这样才能喂狗正常。
5 eCAP模块
eCAP模式是输入捕获模块,可以用来进行测试信号周期等信息。另外也可以用来作为APWM模式输出PWM波。
如上图,在Configuration Parameters中可以设置eCAP模式和APWM模型的管脚。
5.1 APWM模式
在选项卡中进行相应的设置即可。
实验结果:
5.2 eCAP模式
选项卡进行如下的设置即可,此时模块拥有一个输出接口TS,若按图中所示设置,第一次捕获上升沿,第二次捕获下降沿,第三次捕获上升沿。即就可以算出方波信号的占空比。那么输出直接利用DeMux模块可以分别得到三个时刻的计数器数组,数组乘以TCLK即得到时间。
边栏推荐
- QT信号槽总结-connect函数错误用法
- 2837xd code generation - stateflow (4)
- TD conducts functional simulation with Modelsim
- Solutions to Chinese garbled code in CMD window
- Learn combinelatest through a practical example
- How to use PHP spoole to implement millisecond scheduled tasks
- Redis 序列化 GenericJackson2JsonRedisSerializer和Jackson2JsonRedisSerializer的区别
- PI control of three-phase grid connected inverter - off grid mode
- FragmentTabHost实现房贷计算器界面
- DTM distributed transaction manager PHP collaboration client V0.1 beta release!!!
猜你喜欢
JDBC回顾
Pool de connexion redis personnalisé
kinect dk 获取CV::Mat格式的彩色RGB图像(openpose中使用)
Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedd
Bugkuctf-web24 (problem solving ideas and steps)
Image recognition - data annotation
互联网API接口幂等设计
Learn combinelatest through a practical example
自定義Redis連接池
2837xd code generation module learning (4) -- idle_ task、Simulink Coder
随机推荐
Beats (filebeat, metricbeat), kibana, logstack tutorial of elastic stack
Elastic Stack之Beats(Filebeat、Metricbeat)、Kibana、Logstash教程
Creation and jump of activity
ClassFile - Attributes - Code
What is the function of laravel facade
定时线程池实现请求合并
cmake的命令-官方文档
C语言之判断直角三角形
分享一篇博客(水一篇博客)
Discussion on improving development quality and reducing test bug rate
idea查看字节码配置
Ckeditor 4.10.1 upload pictures to prompt "incorrect server response" problem solution
Read Day6 30 minutes before going to bed every day_ Day6_ Date_ Calendar_ LocalDate_ TimeStamp_ LocalTime
View the port of the application published by was
Activity的创建和跳转
攻防世界-Web进阶区-unserialize3
How to use pyqt5 to make a sensitive word detection tool
Redis installation and deployment (windows/linux)
2837xd 代碼生成——補充(1)
Demand delineation executive summary