完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 一只耳朵怪 于 2018-5-25 17:16 编辑
Renton 老师: 你好!请问TMS470MF06607如何进行各种中断的优先级配置呢?比如现在我有三个中断,CAN中断,Rti中断,HET定时器中断,我这样分配它们的优先级(从高到低):HET定时器中断;CAN中断;RTI中断,请问如何配置? |
|
相关推荐
4个回答
|
|
修改中断优先级可以通过M3VIM Interrupt Control Register x (CHANCTRL x)来实现。
首先,请您查看TMS470MF06607数据手册中3.4 Interrupt Priority (M3VIM)的表格。 这个表格列出了所有中断的默认映射和优先关系(排在前面的优先级高)。 这个关系是可以随意设置的,设置方法就是修改CHANCTRLx寄存器。 只要把您需要的几个中断按照优先级在这个映射表中排序就可以了。 比如说,映射表中,默认的优先级是RTI-0(4) > HET-0(13) > DCAN1-0(22),简单的办法是吧RTI-0的映射位置向后移,移至DCAN1-0后边。 从表里可以看到映射区32是reserved,没有使用,那么就把RTI-0放在这里即可。 同时也要注意RTI-0所对应的IF, MASK等位也都有相应的变化。 |
|
|
|
testd27 发表于 2018-5-25 03:11 Renton 老师: 你好!我按照您的方式进行了尝试,我首先修改了VIM_TABLE中的中断服务程序,将RTI的中断服务程序移到了CHANNEL 32的位置,然后对REQMASKSET1寄存器进行了设置,首位置了1,使能CHANNEL32的中断。但是RTI中断并未发生。请问我的思路是否正确,还需要做哪些设置?谢谢! |
|
|
|
szoldman 发表于 2018-5-25 03:18 Hi Wei, 请查收附件,是一个用RTI Compare0 和 Compare2做的例子。 有几处比较关键的改动: 1. CHANCTRL01寄存器中的改动,现在把compare2 (中断6)放在了第4号中断源处;compare0 (中断4)放在了第6号中断源处。 2. 在vim_table中,也要做相应的修改,让第4号和第6号中断,分别对应rtiCompare2Interrupt和rtiCompare0Interrupt。 3. 打开中断嵌套(NVIC_enable();) 4. 在rtiCompare0Interrupt();中,打开rtiCompare2Interrupt的响应,并且进入无限循环。 5. 在rtiCompare2Interrupt();中设置断点,并可以观测到PC进入该断点, 这意味着本来优先级更低的rtiCompare2Interrupt中断,现在可以打断正在执行的rtiCompare0Interrupt中断了。也就是说,两个中断的优先级顺序发生了改变。 |
|
|
|
谢谢~~~ |
|
|
|
只有小组成员才能发言,加入小组>>
388 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
253 浏览 1 评论
892 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
2067 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3809 浏览 4 评论
CC3100BOOST使用CC3200lunchXL进行烧录
850浏览 2评论
88浏览 2评论
117浏览 2评论
98浏览 2评论
123浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-27 14:14 , Processed in 1.223004 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191