首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助版主

求助版主

我在快速中断程序中想将IO口的数据读到一个变量temp中,中断程序我不能用saveall说明,否则时间不够,中断程序我只能用called 说明 我用如下语句:
temp=PESL(GPIOB,GPIO_READ_DATA, NULL);
这条语句是否改变了别的程序使用的寄存器的数据,如果我想用这条语句,我该如何用汇编语句保存这些寄存器。
我这样做的目的是: 在PWM的 deadtime时,读IO口的状态。如果用
#pragma interrupt alignsp saveall 在进入我的程序前要运行30多条由PE产生汇编语句,时间不够,所以我要先运行我的程序,在运行我这条程序前要保存什么数据到堆栈中?谢谢!!!
好困惑
快速中断只有用汇编才能体现它的优越性. manual讲地很清楚.

中断程序不建议用saveall说明.saveall说明要保存60多个字到堆栈中, 建议用
#pragma interrupt alignsp
void Int_Func(void)
{
Int_Called_Func();

}

#pragma interrupt called
void Int_Called_Func(void)
{

}
谢谢
好困惑
请问一下alignsp说明保存多少个字到堆栈,我现在汇编不熟悉,
语句temp=PESL(GPIOB,GPIO_READ_DATA, NULL);要保存什么到堆栈,如何保存,请用汇编帮我写出来好吗! 我的中断程序就一条语句,读IO口就可以了,谢谢!!!
好困惑
返回列表