[讨论] F28335两个中断和主程序同时操作寄存器,中断写寄存器偶尔不成功?

liujian   2015-11-27 15:40 楼主
F28335在程序中开了2个中断,定时中断1和定时中断2,中断1对寄存器A执行写操作,中断2对寄存器A执行读操作,实际运行时会发现100-1000次之间至少会有一次中断1中对寄存器A的写操作 写入失败,这个是什么原因造成的?寄存器B只有中断1写操作,中断2不操作,则不会出现写失败的情况

中断频率大致在20kHz左右;虽然发现写失败后在主程序补写一次A,可以避免出错,但由于主程序扫描周期较长,还是会影响实际功能应用

请帮看看到底是什么原因造成的?

回复评论 (6)

寄存器A是什么寄存器?两次中断的频率分别是多少
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2015-11-27 16:00
中断优先级呢?
点赞  2015-11-27 16:32
中断中的程序都搬到RAM中在运行,主程序在Flash中运行
点赞  2015-11-27 16:36
Timer1和Timer2中断频率不相等,一个是27kHz,一个20kHz左右;

寄存器A在Timer1中断中进行写,Timer2中断中读;寄存器B只在Timer1中断中写;主程序都有对寄存器A,B的读写操作

偶尔写失败的是Timer1中断中的A寄存器;B寄存器没有出现

点赞  2015-11-27 16:36
寄存器为定义的变量,Uint16 A,B;
仿真时可以看到分配的地址在0x0000C100

点赞  2015-11-27 16:38
引用: liujian 发表于 2015-11-27 16:38
寄存器为定义的变量,Uint16 A,B;
仿真时可以看到分配的地址在0x0000C100

那你怎么判断,写失败了?
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2015-11-27 17:24
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复