标题:
求助版主
[打印本页]
作者:
chenwenjun
时间:
2007-6-23 15:56
标题:
求助版主
我在快速中断程序中想将IO口的数据读到一个变量temp中,中断程序我不能用saveall说明,否则时间不够,中断程序我只能用called 说明 我用如下语句:
temp=PESL(GPIOB,GPIO_READ_DATA, NULL);
这条语句是否改变了别的程序使用的寄存器的数据,如果我想用这条语句,我该如何用汇编语句保存这些寄存器。
我这样做的目的是: 在PWM的 deadtime时,读IO口的状态。如果用
#pragma interrupt alignsp saveall 在进入我的程序前要运行30多条由PE产生汇编语句,时间不够,所以我要先运行我的程序,在运行我这条程序前要保存什么数据到堆栈中?谢谢!!!
作者:
usliwu
时间:
2007-6-25 09:04
快速中断只有用汇编才能体现它的优越性. manual讲地很清楚.
中断程序不建议用saveall说明.saveall说明要保存60多个字到堆栈中, 建议用
#pragma interrupt alignsp
void Int_Func(void)
{
Int_Called_Func();
}
#pragma interrupt called
void Int_Called_Func(void)
{
}
作者:
chenwenjun
时间:
2007-6-25 09:23
谢谢
作者:
chenwenjun
时间:
2007-6-25 09:33
请问一下alignsp说明保存多少个字到堆栈,我现在汇编不熟悉,
语句temp=PESL(GPIOB,GPIO_READ_DATA, NULL);要保存什么到堆栈,如何保存,请用汇编帮我写出来好吗! 我的中断程序就一条语句,读IO口就可以了,谢谢!!!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0