完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
芯片是RM42L432,用HAlCoGen生成的代码中,在het.c中有这么一个函数
void capGetSignal(hetRAMBASE_t * hetRAM, uint32 cap, hetSIGNAL_t *signal) [ uint32 pwmDuty = hetRAM->Instruction[(cap << 1U) + 25U].Data; uint32 pwmPeriod = hetRAM->Instruction[(cap << 1U) + 26U].Data; //signal->duty = (uint32)(((uint32)100U * pwmDuty) / pwmPeriod); recPwmSignal.duty = (uint32)(((uint32)100U * pwmDuty) / pwmPeriod); pwmPeriod = pwmPeriod >> 7U; if( hetRAM == hetRAM1) [ //signal->period = (float64)(((float64)pwmPeriod * (float64)640.000) / (float64)1000U); recPwmSignal.period = pwmPeriod * 640 / 1000U; ] else [ recPwmSignal.period = (float64)(((float64)pwmPeriod * (float64)800.000) / (float64)1000U); //signal->period = (float64)(((float64)pwmPeriod * (float64)800.000) / (float64)1000U); ] ] 每次运行到if( hetRAM == hetRAM1)这里面之后,不管是if为真还是为假,都会跳到sys_intvecs.asm文件中的 undefEntry b undefEntry 我原本以为是我主函数中hetSIGNAL_t *signal这里的结构体没有分配内存,可是后来即使分配了也不能用,所以我就定义了一个全局变量recPwmSignal又试了一下。可是用这个也不行,在if那里也会跳到undefEntry那里。 所以我想问一下: 1、undefEntry是内存越界、中断向量没设置好的结果吗? 2、capGetSignal这个函数,是对对应的ca0-cap7通道PWM信号的频率和周期进行采集吗? 3、在TI v5.1.5这个编译器中,为什么没有malloc.h这个文件呢? 4、为什么if中的一句计算会使程序跳到undefEntry呢?不是float的问题,我已经改成了整型的计算,也会跳。我直接改成recPwmSignal.period = 1;也会跳到undefEntry 5、pwm cap edge三个都有getsignal,输出PWM,采集它的管脚必须是PWM吗? |
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1897 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3647 浏览 4 评论
5031 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1734 浏览 1 评论
9372 浏览 8 评论
CC3100BOOST使用CC3200lunchXL进行烧录
669浏览 2评论
714浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
676浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1197浏览 1评论
1772浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 19:33 , Processed in 0.473846 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号