2.中断子程序尽量短。不要把耗费资源的计算放在中断子程序中,除非腔戚胡是对时间要求非常敏感应用伍拦,如电机的FOC算法,才能在中断程序里面之行。
3. 各个中断程序中的处理不要相互冲突,中断是否能嵌套也要小心。
果你在程序里面对函数进行了声明的话,子程序可以写在任意地方(当然还是要在这个文件里面)。如果不进行声明的话,也不是仅仅写在MAIN函数之前这条规则这么简单,而是不能还让编译器没有编译到这个函数当时遇到了这个函数被其他函数调用,这样的话就会出错。第二,中断函数不用进行函数声明,可以写在MAIN函数前面也可以写在MAIN函数后面。
第三,由于不知道你说的是那种单片机在那种编译器下面的写法,我在这里给你一个51内核的单片机79F168在KEIL里面的中断函数的写法给你。
void UART_ISR() interrupt 4
{
if(RI &&REN)
{
}
if(TI &&TXEN)//TXEN为自己定义的一个串口发送使能标志
{
}
}
void timer0_1ms_ISR() interrupt 1
{
TL0=LOBYTE(TIMER0)
TH0=HIBYTE(TIMER0)
}
这两个函数第一个是串口中断函数,第二个是定时器0中断函数,函数名可以自己定义,后面的interrupt必须写,紧着这最关宽卖键的就是这个中断号,可以查询数据手册得到这个中断号,每一个中断都会有一个中断号,亩贺对应着写在后面就可以了。
另提醒楼主基础很慎耐逗重要,所有的东西都是由最基本基础的东西叠加起来的。
中断函数,往往是需要设定培缓游满足中断条件的。运行直接进入了中断子服务程序,可存在于:你直接在程序执行开始就开启了中断源,并且配销对应的中断条件已经满足哪余了。首要需要检查你的中断程序的进入判断部分。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)