完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
EDMA3CC_COMPL_HANDLER_RETRY_COUNT的值在库中是10u
而IPR与ICR寄存器的都是32位的。 这里是不是bug,是不是应该是0x10u |
|
相关推荐
6个回答
|
|
10u的u表示unsigned int,在c6000 compiler data type里是32bit的。
7.4 Data Types www.ti.com/.../sprui04b.pdf |
|
|
|
vuywsdfwf 发表于 2018-6-21 03:48 与32bit 没有关系吧,不管是几位的,10u的10进制就是10,而不是0x10=32吧。 我的问题不是你理解的这样的,是中断函数中的这个while。 void edma3CCComplIsr() [ volatile unsigned int pendingIrqs; volatile unsigned int isIPR = 0; unsigned int indexl; unsigned int Cnt = 0; indexl = 1u; #ifdef _TMS320C6X IntEventClear(SYS_INT_EDMA3_0_CC0_INT1); #else IntSystemStatusClear(SYS_INT_CCINT0); #endif isIPR = EDMA3GetIntrStatus(SOC_EDMA30CC_0_REGS); if(isIPR) [ while ((Cnt < EDMA3CC_COMPL_HANDLER_RETRY_COUNT)&& (indexl != 0u)) [ indexl = 0u; pendingIrqs = EDMA3GetIntrStatus(SOC_EDMA30CC_0_REGS); while (pendingIrqs) [ if(TRUE == (pendingIrqs & 1u)) [ /** * If the user has not given any callback function * while requesting the TCC, its TCC specific bit * in the IPR register will NOT be cleared. */ /* Here write to ICR to clear the corresponding IPR bits */ EDMA3ClrIntr(SOC_EDMA30CC_0_REGS, indexl); (*cb_Fxn[indexl])(indexl, EDMA3_XFER_COMPLETE, NULL); ] ++indexl; pendingIrqs >>= 1u; ] Cnt++; ] ] ] |
|
|
|
pipompipom 发表于 2018-6-21 03:54 这是设置的retry的次数,与通道数无关。 通道的检查是由下面这个while完成的。 while (pendingIrqs) [ if(TRUE == (pendingIrqs & 1u)) [ /** * If the user has not given any callback function * while requesting the TCC, its TCC specific bit * in the IPR register will NOT be cleared. */ /* Here write to ICR to clear the corresponding IPR bits */ EDMA3ClrIntr(SOC_EDMA30CC_0_REGS, indexl); (*cb_Fxn[indexl])(indexl, EDMA3_XFER_COMPLETE, NULL); ] ++indexl; pendingIrqs >>= 1u; ] http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
这个值是与什么有关,还是说只是库中默认设置的一个值,其实设置成1次,2次也是可以的? |
|
|
|
不清楚这个作者对这个值是怎么设的. 但是从TRM手册对于EDMA中断的处理的描述如下: http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
即使是0x10也是16不是32啊。开始我也以为是通道数,但是你看他宏定义的是EDMA3CC_COMPL_HANDLER_RETRY_COUNT
英文字面意思应该是EDMA3CC 完成处理重试的次数。 可能就是重试10次看是不是所有的IPR位都被清零了。 |
|
|
|
只有小组成员才能发言,加入小组>>
351 浏览 1 评论
546 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
790 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
660 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1140 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
87浏览 29评论
322浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
262浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
210浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
69浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 03:01 , Processed in 1.142849 second(s), Total 56, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号