各位坛友好,最近做一个工程项目,用了430f149 ,马上要交工了,程序基本出来,但是问题还有一些,还请各位大师答疑解惑。
项目的主要目的是用定时器A做片外AD的采样控制,定时250us中断采一个AD值,存在RAM里。定时器B用低频晶振,主要是定时总的采样时间,采够了时间整个系统停止。另外还用了无线模块,无线模块中断接收下位机发来的指令,通过中断中设定的全局标志,在主函数里分析到底是什么指令。问题来了。
1 由我上面的叙述 大家可以看出 我用了三个中断 无线的接受中断用的是P2口中断 剩余两个是定时器中断。无线接收中断我设定了一个全局标志在主函数里分析,即如果收到指令,全局标志cmd置1,主函数里if( cmd==1)通过往下面执行,如果是AD采样指令,则在该if语句下执行AD采样的程序,即使能定时器AB中断,我在定时器A中断里也设定了全局标志位,就是采样够了16个250us,即采了16个点,回主函数执行无线发送。
问题在于此,cmd是中断的全局标志,我在其中又嵌套了一个来自定时器A的中断标志,这种办法是否可以?
2 中断执行结束后是返回打开总中断的地方 还是被中断的地方 还是while循环 个人认为是于第二种
3 在单步过程中 发现定时器A执行完后 全局标志置1 函数也不会运行到主函数中 依然在中断里不停走
4 单步中,如果定时器B中不打开总中断允许EINT(),则程序一直在定时器B中运行,不会进入定时器A中断
此帖出自
小平头技术问答
一周热门 更多>