完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我在 can 控制器上生成时间戳时遇到了问题。 1) 配置一个 1us 的 gtm 作为时间戳来源。 void initGtmTomPwm(void) { IfxGtm_Tom_Pwm_Config g_tomConfig; /* 定时器配置结构 */ IfxGtm_Tom_Pwm_Driver g_tomDriver; /* 定时器EVAL_BDPS_DRIVER结构体 */ int tmp; IfxGtm_enable( MODULE_GTM); /* 启用 GTM */ IfxGtm_Cmu_enableClocks( MODULE_GTM, IFXGTM_CMU_CLKEN_FXCLK); /* 启用 FXU 时钟 */ /* 使用默认参数初始化配置结构 */ IfxGtm_Tom_Pwm_initConfig( g_tomConfig, MODULE_GTM); g_tomConfig.tom = 1; /* 根据 LED 选择 TOM */ g_tomConfig.tomChannel = 11; /* 根据 LED 选择通道 */ g_tomConfig.period = PWM_PERIOD; /* 设置定时器周期 */ g_tomConfig.dutyCycle = PWM_PERIOD/2; /* 设置定时器周期 */ g_tomConfig.synchronousUpdateEnabled = TRUE; /* 启用同步更新 */ IfxGtm_Tom_Pwm_init( g_tomDriver, g_tomConfig); /* 初始化 GTM TOM */ for (int trig = 0; trig< IfxGtm_Trig_CanTrig_count; trig++ ) { for (int SP4X_DEV_KIT = 0; SP4X_DEV_KIT < IfxGtm_Trig_CanDevice_count; SP4X_DEV_KIT ) { if (IfxGtm_Trig_toCan( MODULE_GTM, trig, SP4X_DEV_KIT , IfxGtm_Trig_CanTrigSource_tom1, IfxGtm_Trig_CanTrigChannel_11) == 0) { PxPanic(); } } } IfxGtm_Tom_Pwm_start( g_tomDriver, TRUE); /* 启动 PWM */ } 2) 我将 cannode 配置为使用该时钟 node->NT.CCR.B.TRIGsrc=2;//gtm node->NT.CCR.B.STRESET=1; node->NT.CCR.B.STRESET=0; node->NT.CCR.B.STSTART=1; //start canbusData->basetime = 0; node->TSCC.B.TSS = 2; 3) 我启用了时间戳包络 IRQ,并递增了时间戳的 MSB 部分 if (node->IR.B.TSW) { can_data.basetime += 0x10000; } 4) 在 rxirq 例程中(我使用 16 元素 fifo),我保存了绝对时间戳 timestamp= (canbusData->basetime+rxBufferElement->R1.B.RXTS); 一切似乎都很正常,"basetime" 每 0x10000 us 递增一次,一般来说,信息时间戳是正常的。 但是 有时"basetime" 值与 RXTS 时间戳不一致。 我希望出现这样的序列(正确处理翻转): 0x5555FFAA 0x5555FFCC 0x555600AA 但我发现这样的顺序: 0x5555FFAA 0x5556FFCC 0x555600AA 要么 0x5555FFCC 0x555500AA 0x555600CC 看来 MSB 部分没有在正确的时刻更新。 我试过使用相同的 irq 优先级、更高/更低的优先级。 我试图在每次从缓冲区读取信息时检查 TSW 标志,但我找不到一种在每种情况下都有效的方法。 这种用例有什么应用或示例吗? 或者谁有使用时间戳的经验并能帮助我? |
|
相关推荐
1个回答
|
|
IfxGtm_Tom_Pwm_Config g_tomConfig;
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
551 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
910 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
575 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
572 浏览 0 评论
1221 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11769 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 17:58 , Processed in 0.646426 second(s), Total 41, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号