用249芯片也有一年了,没有怎么去深究,最近在优化代码的时候,在考虑低功耗的问题。
我们知道,进入中断,相关寄存器入栈,退出出栈,如果MCU先进入了低功耗,比如LPM3,那么执行一个ISR,如果没有调用编译器自带的“退出低功耗”语句,MCU仍然保持低功耗。可是,问题来了,程序里面有好几个地方需要退出低功耗,部分是在自己写的函数中,这些函数在中断中被调用。我希望在自己函数中执行“退出低功耗语句”,遗憾的是这不行,只能在中断函数主体中调用该语句,否则是退不出低功耗的。
大虾们,有何良策可以在任意地方退出低功耗啊?原来想到的是自己产生一个中断,在那个中断里面去执行退低功耗函数,但感觉这个方法不太妥。
另外,看了下249的中断向量,有17个向量是保留的,可不可以利用上啊?或者有类此ARM的SCALL指令? |