这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » interrupt,using interrupt using 请教

共2条 1/1 1 跳转至

interrupt,using interrupt using 请教

院士
2006-09-17 18:14:16     打赏
interrupt,using interrupt using 请教



关键词: interrupt     using     请教    

院士
2006-12-22 22:43:00     打赏
2楼
问 问题如下:
如定义一数组uchar array[10] = {0}; uchar index = 0;
在中断程序中如:
写法一:
void serial(void) interrupt 4
{
    if (RI)
        SBUF = array[index++];
}
写法二:
void serial(void) interrupt 4 using 1
{
    if (RI)
        SBUF = array[index++];
}
我发现编译后写法二比写法一多用8个RAM,如果直接写成SBUF = array[0];两个写法结果一样。比较后发现SP的起始地址有变化,请KEIL高手分析一下。中断程序不用USING是否更好一点?虽然可能入栈多一点,但RAM空了8个,谢谢!
1: re使用using的中断程序工作效率更高,内部所调用的子程序必须与中断程序使用同一组寄存器.其它程序所用的寄存器组与中断程序使用的寄存器组要区分开.也就是说:牺牲空间换取时间 2: 就是:牺牲空间换时间,如果中断中局部变量用的少的话不建议比如你的那个中断就没必要切换寄存器组

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]