首先你要搞懂这是什么中断,从中断服务程序第一行可以看出来
void INT_TIME(void) interrupt 1
这是中断名,可以随便取这是中断号,从0 开始往上排,1表示定时器0中断
分别是:0--外部中断0
1--定时器0中断
2--外部中断1
3--定时器1
4--串口中断
其次就是中断服务器程序的具体内容了,这个就千差万别,与你的用途有关了。
这里是定时器0中断,溢出值是46080,看来用的是11.0592M晶振,50毫秒定时中断,完成的功能是:100毫秒LED1灯闪烁一次,600毫秒LED2闪烁一次,100毫秒P1口流水灯效果移动一次。
当MCU接收到GPS发来的一个字节
时触发中断,进入中断程序,(在进入中断程序时串口照样接收,中断程序是往串口
缓存
区读的数据,并且读数据时相当快的,永远不用担心还在读的时候数据被新来的给覆盖了)将该接收的字节提取出放在一个
缓冲区
内,缓冲区是你自己
定义
的一个
数组
或
字符串
,谁你喜好,如你所述GPS是每隔1秒发送一次数据的,此时你可以在
主程序
中设计当0.5秒没有接收到GPS所发的数据时,就将缓冲区内的数据读出处理,并清空缓冲区,这样其实中断程序只管
接收数据
,
主函数
只管处理数据,两不相冲。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)