DSP28335代码生成——如何使用两个中断


接到任务说要做代码生成,异步电机矢量控制程序用simulink代码生成弄出来。

首先就是simulink主界面的问题。

主界面用的是time0中断,这个中断默认优先级是40(最低优先级),并且可以被抢占。

然后我的矢量控制程序需要用2个中断,分别是PWM中断、QEP中断。

其中PWM中断服务函数用来执行电流采集、矢量变换、PI、SVP等。QEP中断服务函数用来计算转速。

具体的模块连接方式如下图:

为什么不把转速计算也放到PWM中断里面。

是因为转速计算并不需要那么频繁(PWM频率为2500),我采用的是定时间(单位时间内数脉冲个数)的方法,放在PWM中断服务函数里面的话,时间太短(0.0004S),采集到的脉冲数太少,算出来的转速波动太大(之前就是这么写的)。所以必须增大这个定时间,所以就另外用了QEP中断(现在用的100Hz,就是0.02S访问一次QEP中断服务函数)。

至于中断向量表出来的线用的是(如下图)Demux模块而不是BUS模块,是因为用了BUS会报错(之前试过)。

也可以想的到,BUS需要选择信号的,中断向量表这个模块根本就没信号让你去读取,你根本选不到信号。

然后就是中断向量表这个模块的设置了,它里面是这样的(如下图):

第一行是PEI组、第二行是PIE组内向量、第三行是相应的中断优先级、第四行是相应的中断是否设置为可抢占中断。

上图翻译一下就是:用了两个中断,分别是PWM1中断(3,1)和QEP1中断(5,1),其中PWM1中断的优先级比QEP1中断优先级高,且PWM1中断为不可被抢占中断,QEP1中断为可被抢占中断。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值