找回密码
 立即注册
楼主: 王昱顺

使用STC-FOC Lite制作的遥控小车,实践才是检验真理的唯一标准

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 2024-4-3 17:01:48 | 显示全部楼层
38009*** 发表于 2024-4-3 14:16
哦哦,理解了,那下面这句用法不懂,
电机运行信息缓存
Moto_Save_Dat moto_save;//??

电机的辨识参数需要存储到EEPROM中,所以需要有一个缓存来存储这些参数。
辨识结束后将会存入EEPROM中并且重启,下次上电就可以直接调用这些辨识好的参数了
这个Moto_Save_Dat其实是个结构体,里面包含了包括电机的极对数,零点,方向等一系列信息
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-4-3 17:20:05 | 显示全部楼层
王*** 发表于 2024-4-3 17:01
电机的辨识参数需要存储到EEPROM中,所以需要有一个缓存来存储这些参数。
辨识结束后将会存入EEPROM中并且 ...

感谢老师指点,老师:那moto_save呢??我就是不理解,为啥这样写?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-4-8 13:46:07 | 显示全部楼层
王*** 发表于 2024-4-3 17:01
电机的辨识参数需要存储到EEPROM中,所以需要有一个缓存来存储这些参数。
辨识结束后将会存入EEPROM中并且 ...

老师:既然Moto_Save_Dat是个结构体,我查其定义时,确什么都查不到呢?

点评

查询的时候需要先编译一下才能正常查询  发表于 2024-4-8 14:12
定义在config.h 里面  详情 回复 发表于 2024-4-8 14:11
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 2024-4-8 14:11:35 | 显示全部楼层
38009*** 发表于 2024-4-8 13:46
老师:既然Moto_Save_Dat是个结构体,我查其定义时,确什么都查不到呢?

定义在config.h 里面
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-4-8 14:35:21 | 显示全部楼层
王*** 发表于 2024-4-8 14:11
定义在config.h 里面

找到了,谢谢老师;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-4-8 14:45:40 | 显示全部楼层
王*** 发表于 2024-4-8 14:11
定义在config.h 里面

老师:这个用法,能给解析一下吗?看不懂

Task_This[Task] = Output_Loop_Clk_Flag ? Run_Flag ? 1 : 3 : 0;//??

点评

如果输出同步标志位为1,则执行Run_Flag?1:3,否则返回0 如果Run_Flag为1,则执行1,否则执行3  详情 回复 发表于 2024-4-8 15:43
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 2024-4-8 15:43:17 | 显示全部楼层
38009*** 发表于 2024-4-8 14:45
老师:这个用法,能给解析一下吗?看不懂

Task_This[Task] = Output_Loop_Clk_Flag ? Run_Flag ? 1 : 3  ...

如果输出同步标志位为1,则执行Run_Flag?1:3,否则返回0
如果Run_Flag为1,则执行1,否则执行3
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-4-8 16:15:00 | 显示全部楼层
学习下
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-4-8 17:17:32 | 显示全部楼层
王*** 发表于 2024-4-8 15:43
如果输出同步标志位为1,则执行Run_Flag?1:3,否则返回0
如果Run_Flag为1,则执行1,否则执行3 ...

收到,谢谢,我再看看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-4-9 14:45:13 | 显示全部楼层
低通滤波器中这三个公式,不理解,请老师指点一下
dt = (time_temp - p->last_time) * 1e-6f;
alpha = Tf / (Tf + dt);
y = alpha * p->last_result + (1.0f - alpha) * x;

点评

程序中其实没有用低通滤波,因为会引入额外的延迟环节 第一句是将事件变化量作为一个系数,防止间隔不同的时间调用,所造成的滤波混乱。 (也就是不用放在定时器里面了,可以在主程序中随便放) 第二句是计算想要的  详情 回复 发表于 2024-4-9 19:47
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 20:11 , Processed in 0.153321 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表