之前没怎么用中断程序,最近想把之前做的一个项目改进一下,想了一会觉得中断兴许能行。
不过我想着先问问足智多谋的大家,防止自己闭门造车钻牛角尖。
先说一下我个人对中断的理解,就是人在工作中(主程序运行),突然肚子疼或者到点要开例会(有中断事件产生了),于是把手头的工作停下,上大号/去开会(执行中断服务),出厕所/开完会继续工作(中断结束,返回主程序)。
中断事件类型里面,离散类的(I0.0的上升沿等),我按上面突然肚子疼理解的(没法预测,不知道什么时候来),定时器类的(SMB34,SMB35,T32和T96),我是按开会理解的(我工作中每100ms就去开个小会)。通信类的我不知道按什么理解比较好。
当然我也不知道自己理解的对不对
要改进的东西说简单可能也简单,我们设备是在200smart的基础上重新魔改的(架构没动),由于成本原因模拟量输入不怎么准(比如20mA进来应该是27648结果读出来27800,y=kx+b上k大了)要做校准,搞了一个精度比较高的电流源,设备带八个模拟量输入口,AI0-AI7每个口给1s的时间接收一个4mA(第一轮),12mA(第二轮),20mA(第三轮),三点拉一条y=kx+b直线。我想的是在每次有有效信号(4/12/20)进来的时间内,调用一个中断去做滤波计算得到一个近似稳定的值,存到一个特殊的地址段去做校准(我们的AI口不是AM06那种扩展的模式,所以没办法用组态上扩展模块滤波)。
我不知道这个能不能做,大家能给点啥想法或者建议吗?