自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 PLC CODESYS :数组与字符串变量内容互转

(*在结尾添加字符串结束符'/0’,字符串结束符'\0'的ASCII是0*)字符串转数组 只使用MEM.MemMove即可。

2024-05-17 09:53:39 129

原创 CoDeSys:ethercat主站配置中目标地址相关的广播和冗余讲解

冗余地址用于实现冗余和备份。这样可以确保在某个从站发生故障或通信中断时,其他冗余从站可以继续工作,保持系统的稳定性和可用性。广播地址是一个特殊的地址,在EtherCAT网络中被预留出来,因此主站可以将消息发送到此地址,从而触发所有从站执行相应的操作。需要注意的是,目标地址的配置是通过EtherCAT主站的配置软件或工具进行设置的。目标地址是指EtherCAT主站要发送数据或指令的目的从站的地址。冗余地址的使用对于实时性要求较高或需要高可用性的系统非常重要,可以提高EtherCAT网络的可靠性和容错能力。

2023-12-21 15:44:19 609

原创 指针数组和数组指针的区别

然而,虽然不会出现编译器错误或运行时错误,但这种越界访问行为并不安全,无法保证程序的正确性。指向的是一个包含 4 个整数的一维数组;两者并不匹配, int(*p)[4]应改为 int(*p)[3];类型为int(*)[3];类型为int(*)[4];本质是数组,包含两个指针元素,每个指针元素都指向一个字符。被转换成一个指向包含 3 个整数的一维数组的指针,也就是。虽然越界,但其实际指向的内存地址与。本质是指针,指向一个字符数组。

2023-12-02 14:35:05 391

原创 Labview:反馈节点-for循环通过隧道将每次输出存储在数组

ps:纠正(一)中反馈3次之后才迭代的说法,严格说是第3次迭代,迭代的值被下次循环使用。当i=2时,满足触发条件且属于第2次迭代,此时输出值被反馈回去,将在i=3时使用。从结果分析,第4次循环(i=3)时输出值才变化。

2023-11-09 14:48:13 621 1

原创 C语言练习:二级指针理解

在进行字符的异或运算时,实际上是对字符的 ASCII 码进行异或运算。字符的异或运算是按照字符的 ASCII 码进行的。所以根据a=>&p,声明形参:void swap(char** a, char** b)的实参调用:swap(&p, &q);打印的是首地址大小,而不是类型char的大小:printf("sizeofarr=%ld\n",sizeof(arr));根据*a=>p,while (*a < *b)相当于while (p < q);根据**a => *p,**a ^= **b;

2023-10-25 11:06:08 66 1

原创 C语言指针练习讲解:指针理解

指针理解

2023-10-24 14:07:57 50 1

原创 为一个函数起一个新的函数名

调用时,MachineEnableIF(FALSE);

2023-09-05 13:34:38 38

原创 清空指定长度的浮点数数组

类型在特定系统中占用多少字节,都可以正确地为数组分配内存空间,确保其长度与所需的元素个数相匹配。在C/C++中,数组的长度通常是以元素个数为单位进行指定。但在某些情况下,我们需要以字节数为单位来指定数组的长度,这就需要使用。函数用于将指定长度的内存块设置为特定的值,这里是将数组中的每个元素都设置为0.0。为了确保分配足够的内存空间以容纳所有的浮点数元素,我们使用。该宏定义的功能是用零来清空指定长度的浮点数数组。函数来将数组中的每个元素都设置为0.0。是要清空的浮点数数组,在该宏中使用了。

2023-08-18 14:18:47 178 1

原创 直线斜率在0到1之间

垂直距离小于水平距离:当直线斜率小于1时,说明垂直方向上的变化相对于水平方向上的变化来说较小。换句话说,直线的斜率越接近0,其上升的速度就越慢。例如,一条几乎平行于水平轴的直线,其斜率接近0,表示该直线的上升趋势非常缓慢。总而言之,当直线斜率在0到1之间时,我们可以理解为直线的上升趋势较缓,垂直距离相对于水平距离的变化较小。它可以表示一个斜率较小的斜线,或者以较慢的速度在水平和垂直方向上增长的直线。斜率为1时,直线为45度线:当直线的斜率等于1时,代表直线以相等的速度在水平和垂直方向上同时增长。

2023-08-17 10:59:47 418 1

原创 Feed hold进给保持

当电机正在执行运动时,有时需要临时停止电机的运动,例如在紧急情况下或者需要进行调整或检查的时候。这时,可以使用 “Feed hold” 功能来实现暂停电机的运动。在 Feed hold 操作期间,电机将停止运动,但保持当前位置。这使得操作人员可以执行必要的调整、维护或检查,然后在需要时再次启用电机运动。Feed hold 功能对于增强电机控制系统的安全性和灵活性非常重要,尤其在需要对工作过程进行干预或应对紧急情况时。在电机控制领域,“Feed hold” 是指暂停或中止步进电机的运动。

2023-08-17 10:19:54 286 1

原创 DSP经过梯形速度规划得到的速度是float类型数据,而FPGA只能处理整数类型,在实际工程和运动控制领域是怎么处理这个问题的

固定点数表示:将浮点速度数据乘以一个固定的缩放因子,然后将结果向下取整或四舍五入为整数。例如,可以将速度乘以一个适当的倍数,如1000,然后将结果转换为整数。这种方法牺牲了一定的精度,但可以在FPGA中实现快速的整数运算。小数移位:将浮点速度数据扩大一定倍数,并将小数部分移位为整数。例如,将速度乘以一个适当的倍数,如1024,然后将结果转换为整数。移位后的小数部分可以被看作是一个固定的小数位数,从而可以在FPGA中进行整数运算。浮点数转整数近似:使用合适的近似算法,将浮点速度数据近似为最接近的整数值。

2023-08-16 09:08:59 40 1

原创 TMS32F28377D外设中断学习记录篇

处理一个中断,而其他中断处于待处理状态,在软件中实现和优先化嵌套中断,并在某些关键任务期间禁用中断。没有那么多中断线在有限中断线的情况下,只能安排中断线进行复用。每级中断有自己的使能和标志寄存器。处理一个中断,而其他中断处于待处理状态,在软件中实现和优先化嵌套中 断,并在某些关键任务期间禁用中断。同步增加两个 SYSCLK 周期,以及额外的输入验证时间(如果使用)。每级中断有自己的使能和标志寄存器。它还扩展向量表,以允许每个中断具有自己的。上电时,默认情况下不会启用中断。中断线上过来的中断请求,但。

2023-08-11 16:13:46 1037 1

原创 TMS320F28377D定时器篇学习记录

每来一个时钟信号,预定标计数器PSCH:PSC就会减1,直到减到0后,它将会重载TDDRH:TDDR的值,同时TIMH:TIM计数器将会减1。这个过程将重复进行,直到TIMH:TIM计数器的值减到0时,定时器将会产生一个中断信号,同时TIMH:TIM计数器重载周期寄存器PRDH:PRD的值。是定时器 0,当定时器 0 计时到 100ms 的时候,程序进入定时器 0 中断服务函数,用户可以。定时器中断信号是经过 PIE 后,再作为 C28x 处理器的中断输入信号,并且定时器的时钟。写入1,关闭定时器;

2023-08-10 15:07:10 1247 3

原创 结构体类型指针做为函数传参

所以函数ConfigCpuTimer里可以对寄存器位操作,如Timer->RegsAddr->TCR.bit.TSS = 1;

2023-08-10 14:06:47 224 1

原创 【无标题】

【代码】【无标题】

2023-08-10 11:44:41 84 1

原创 TMS32F28377D芯片中 InitPieVectTable(); 初始化中断向量表 讲解

简单来说,该函数的作用是将预定义的中断向量表数据复制到实际的中断向量表地址,并启用中断向量表。这样,处理器在执行中断服务程序时,会根据中断发生的类型找到相应的中断向量表项,从而执行相应的中断服务程序。TMS32F28377D芯片具有 221 个中断向量表项,每个项都包含一个指向中断服务程序的地址。这是一个用于初始化TMS32F28377D芯片中中断向量表的函数。

2023-08-10 11:42:04 733 1

原创 进入非法操作中断

非法操作指的是在执行某个数学运算时发生了非法操作,例如对负数取平方根、除以零或进行其他无效的数学运算;当非法操作中断被触发时,中断服务程序(ISR)会被执行。DSP型号TMS32F28377D在执行。

2023-08-02 13:51:11 531

原创 点到点(PTP)算法控制电机

点到点(PTP)算法是一种用于直线电机的控制方法,使电机沿直线从一个位置移动到另一个位置。PTP算法控制背后的原理是计算电机需要遵循的必要速度和加速度曲线,以准确有效地达到所需的位置。5. 反馈控制:在运动过程中,算法持续监测电机的实际位置,并相应地调整控制信号,确保准确定位。3.生成加速度曲线:算法计算电机需要遵循的所需加速度曲线,以实现所需的速度曲线。2. 速度曲线生成:算法计算电机达到所需位置所需的速度曲线。通过这些步骤,PTP算法控制直线电机沿直线从一个位置移动到另一个位置,定位精确,运动平稳。

2023-07-31 14:11:41 360 1

原创 工作过程的相关使用工具

该文章包括git的常用操作s。该文章包含下载安装的内容。

2023-07-31 13:59:51 32 1

原创 单圈脉冲数

如果步进电机带细分的话,每个脉冲前进的度数就是步距角除以细分数,如16细分,电机转一周需要(360/(1.8/16))=(360/0.1125)=3200个脉冲数;4细分则需要800个脉冲数。计算10转/秒需要的脉冲数:10*800=8000个;例:让步进机以每分钟600转的速度,行走400毫米,计算上位机需要发出的脉冲数及脉冲频率。实现步进电机600转/分的转速,上位机应该保持8K的脉冲输出频率。步进电机每秒钟的转数:600/60=10转/秒;1、知道步进电机转一圈需要的脉冲数(已知步距角、细分数);

2023-07-10 16:12:05 1326 1

原创 #pragma

#pragma

2023-07-06 15:41:45 966 1

原创 结构体-联合体

类型的结构体,存储在不同的内存位置上。的数组,长度为 4。根据代码片段中的定义,

2023-07-06 10:37:46 50 1

原创 memcopy

memcpy((uint16_t *)&RamfuncsRunStart,(uint16_t *)&RamfuncsLoadStart, (unsigned long)&RamfuncsLoadSize);

2023-07-03 14:38:49 877

Codesys:文件读写(CAA File库)

Codesys:文件夹和.txt文件操作(CAA File库),相关代码在官方网页复制。 小白文本读写入门必备,看这个文档足够了。

2024-04-10

TMS32F28377D外设中断学习记录篇

TMS32F28377D外设中断学习记录篇

2023-08-11

TMS320F28377D定时器篇学习记录

TMS320F28377D定时器篇学习记录

2023-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除