TI中文支持网
TI专业的中文技术问题搜集分享网站

请问DSP28335的赋值语句,会被中断,所打断吗?

如果赋值语句为赋值一个32位的值,那么是不是有可能在16位赋值完毕的时候,被中断所打断呢?

那么我在main循环中和某个中断中公用一个值的时候,且该值为关键的控制量时,做什么处理会比较安全呢?

Green Deng:个人觉得不会,C2000都是32位系统,单次赋值应该不存在一次赋值16位的说法。除非是用的影子寄存器转换的,那样有可能出现被打断的情况

如果赋值语句为赋值一个32位的值,那么是不是有可能在16位赋值完毕的时候,被中断所打断呢?

那么我在main循环中和某个中断中公用一个值的时候,且该值为关键的控制量时,做什么处理会比较安全呢?

user5365243:

回复 Green Deng:

你好,请看上图,其中driver_par.frq_pwm为16位数,他的汇编的赋值指令是一条(不知道这个是不是原子操作,即不会被中断打断的操作)。

而driver_par.kpwm = driver_par.u_n 这条指令则是flout变量之间的赋值,包括下面的driver_par.iuvw_coff = 0.001395089286也是flout型变量的赋值,

这两个语句的汇编指令都为两条以上,我觉得会不会有可能中断会出现在这两条汇编指令之间,如果在中断内有相同的变量进行赋值,不知道会不会导致赋值

受到影响。

如果赋值语句为赋值一个32位的值,那么是不是有可能在16位赋值完毕的时候,被中断所打断呢?

那么我在main循环中和某个中断中公用一个值的时候,且该值为关键的控制量时,做什么处理会比较安全呢?

user5365243:

回复 Green Deng:

好的!十分感谢

赞(0)
未经允许不得转载:TI中文支持网 » 请问DSP28335的赋值语句,会被中断,所打断吗?
分享到: 更多 (0)